0

我有一个类,其中包含多个潜在的价值来源(具有相同的 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;
    }
    
4

1 回答 1

1

经过几天的挠头和最终的顿悟,我认为Hub是最合适的术语。但在我的情况下,我宁愿根据它的目的(FloatExt 或其他东西)来调用这个类。

于 2019-09-03T01:09:40.480 回答