相关疑难解决方法(0)

在不使用具有长参数列表的构造函数的情况下构建大的不可变对象

我有一些大的(超过3个字段)对象,它们可以而且应该是不可变的.每次遇到这种情况时,我倾向于使用长参数列表创建构造函数可恶.它感觉不对,难以使用,可读性受损.

如果字段是某种类似列表的集合类型则更糟糕.一个简单的方法addSibling(S s)可以简化对象的创建,但会使对象变得可变.

在这种情况下你们有什么用?我在使用Scala和Java,但我认为只要语言是面向对象的,问题就是语言不可知.

我能想到的解决方案:

  1. "具有长参数列表的构造函数可憎"
  2. Builder模式

感谢您的输入!

java oop scala immutability

96
推荐指数
7
解决办法
1万
查看次数

在C#中构造对象的首选方法是什么?构造函数参数或属性?

我想知道,在C#中构造新对象的首选方法是什么?

参加一个Person课程:

public class Person 
{
    private string name;
    private int age;

    //Omitted..
}
Run Code Online (Sandbox Code Playgroud)

我应该创建它来使用:

New Person("name", 24);
Run Code Online (Sandbox Code Playgroud)

要么

New Person() { Name = "name", Age = 24 };
Run Code Online (Sandbox Code Playgroud)

这只是一个品味的问题,还是有充分的理由使用一个而不是另一个?

我可以想象一个人应该只使用构造函数中的必需字段和可选字段而不是构造函数参数,而是使用属性.

我是对的吗?

c# oop constructor properties

27
推荐指数
4
解决办法
6870
查看次数

标签 统计

oop ×2

c# ×1

constructor ×1

immutability ×1

java ×1

properties ×1

scala ×1