如何正确命名包含返回从此类中设置的源中选择的值并以相同方式设置源值的属性的类?

Posted

技术标签:

【中文标题】如何正确命名包含返回从此类中设置的源中选择的值并以相同方式设置源值的属性的类?【英文标题】:How to correctly name a class that contains property that returns value selected from sources set in this class and sets source values thes same way? 【发布时间】:2019-12-30 22:03:18 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于如何正确命名包含返回从此类中设置的源中选择的值并以相同方式设置源值的属性的类?的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 使用带有枚举的选择器和提供的值并返回正确的 tag()

OBIEE:如何在保存的过滤器中设置“提示”值

根据数组中的值检查值并使用 PHP 返回键

如何访问之前在 Safari 应用程序中设置的 SFSafariViewController 中的值

如何根据文本字段 Material UI 中设置的值将对象设置为状态

如何使用nixos中设置的属性的默认值,并对其进行扩展