【发布时间】:2017-07-08 18:13:31
【问题描述】:
下面创建的两种方法之间哪个被认为是更好的做法? MakeCallV1 更简单,代码更少。 MakeCallV2 对扩展开放并遵守 SOLID 原则。
如果认为 V2 更好,那么不创建使用内置数据类型(字符串、int 等)的方法是否是一个好的经验法则?
public class Caller
{
public void MakeCallV1(string phoneNumber, string name)
{
//Using built-in data type string
}
public void MakeCallV2(IContact contact) {
//Using IContact
var name = contact.Name;
var number = contact.PhoneNumber;
//Make call code
}
}
public interface IContact
{
string PhoneNumber { get; set; }
string Name { get; set; }
}
【问题讨论】:
-
由于
contact不包含任何行为,两者都将遵循 SOLID 原则。当然,introducig classContact将是更“广泛”的解决方案,因为当您为联系添加更多参数时,您不需要更改方法的签名。特别是在这种情况下,您根本不需要界面
标签: c# methods types parameters interface