我有一个类,其中包含多个潜在的价值来源(具有相同的 c 类型)和属性,该属性根据提供的来源返回某些来源的价值(按重要性顺序,包括内部价值)。我简单地称它为 Provider,但也可以设置属性(这实际上基于相同的逻辑设置了一些源值),所以它看起来不正确。
我宁愿称它为双向提供商或承包商(这很麻烦),但感觉就像我在这里有一些模式,有一个特定或全面的名称。更多“接近真相”的变体:分配器、指挥、供应、代理、贡献者。像 Node 一样简单,但更具体的东西。
tl;dr:名称必须反映所有或大部分这些陈述:
- 类包含多个可以设置“外部”的外部值源(Exposer???)
- 类包含“默认”内部值(可以被源值“覆盖”)(容器?)
- 类(属性)总是提供一些价值(提供者?)
- 可以设置(类的)属性(接收者?)
- 该值可以获取或设置,来自外部值源(如果有),或者来自内部值(解析器?)
在类(属性)呈现的值类型旁边看起来合乎逻辑(例如:FloatProvider)
public class FloatProvider //Needs proper name { public float internalValue = 1.0f; // these may be renamed public Foo fooSource = null; // to make more sense public Bar barSource = null; // in terms of the class public float Value { get => GetValue(); set => SetValue(value); } public float GetValue() { if (fooSource!=null) return fooSource.value; else if (barSource!=null) return barSource.value; else return internalValue; } public void SetValue(float value) { if (fooSource!=null) fooSource.value = value; else if (barSource!=null) barSource.value = value; else internalValue = value; } public FloatProvider(float internalValue, Foo fooSource, Bar barSource) { this.internalValue = internalValue; this.fooSource = fooSource; this.barSource = barSource; } } public class Foo { public float value = 10.0f; } public class Bar { public float value = 0.1f; }