Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这是命名模式吗?_C#_Oop_Design Patterns_Architecture - Fatal编程技术网

C# 这是命名模式吗?

C# 这是命名模式吗?,c#,oop,design-patterns,architecture,C#,Oop,Design Patterns,Architecture,您好 我有两个类提供相同的属性。第一个允许读取和写入其所有属性,第二个仅允许读取。我发现这样做更容易创建值对象,而不是创建一个巨大的构造函数(以后可能会有所不同)。构建器模式涉及一个专门用于创建对象的类,在我看来,对于一个简单的值对象来说“太多了” 所以,问题是,这是一个命名模式吗?以前有人用过这种把戏吗?以后继续这样做会遇到问题吗?这可以称为模式。这可以称为模式。如果我正确理解了您希望识别的代码的确切部分,那么是的,它确实有一个通用名称 引入一个封装参数列表的类,这样就不用像您所说的那样拥有一

您好

我有两个类提供相同的属性。第一个允许读取和写入其所有属性,第二个仅允许读取。我发现这样做更容易创建值对象,而不是创建一个巨大的构造函数(以后可能会有所不同)。构建器模式涉及一个专门用于创建对象的类,在我看来,对于一个简单的值对象来说“太多了”


所以,问题是,这是一个命名模式吗?以前有人用过这种把戏吗?以后继续这样做会遇到问题吗?

这可以称为模式。

这可以称为模式。

如果我正确理解了您希望识别的代码的确切部分,那么是的,它确实有一个通用名称

引入一个封装参数列表的类,这样就不用像您所说的那样拥有一个巨大的构造函数,而只需要一个参数对象,它被称为引入参数对象,并在Fowler的重构模式目录中列出


如果我正确理解了您希望识别的代码的确切部分,那么是的,它确实有一个通用名称

引入一个封装参数列表的类,这样就不用像您所说的那样拥有一个巨大的构造函数,而只需要一个参数对象,它被称为引入参数对象,并在Fowler的重构模式目录中列出

public class BanknoteDescriptor
{
    public double Value { get; set; }
    public string Currency { get; set; }
}

public class Banknote
{
    private BanknoteDescriptor _description;

    public Banknote(BanknoteDescriptor description)
    {
        _description = description;
    }

    public double Value
    {
        get { return _description.Value; }
    }
    public string Currency
    {
        get { return _description.Currency; }
    }

    // Overring in order to create a value object
    // ...
}