在面向对象的设计中,以下哪项更好?面向对象设计:使用方法参数vs属性
与方法等发送参数:
obj.InsertRecord("raed","1987")
或使用类似的属性:
obj.name= "raed"
obj.year= "1987"
obj.InsertRecord()
在面向对象的设计中,以下哪项更好?面向对象设计:使用方法参数vs属性
与方法等发送参数:
obj.InsertRecord("raed","1987")
或使用类似的属性:
obj.name= "raed"
obj.year= "1987"
obj.InsertRecord()
如果您发送的参数,你必须每次改变InsertRecord()
签名obj
的类签名更改(例如,如果你添加一个description
属性) ,因为你会想保存这些新的属性。
此外,对象本身不应该为保存自己而烦恼。这不是对象的责任。所以,像这样的事情是最有前途的:
ObjectStorage.InsertRecord(obj);
面向对象程序设计,这是优选的:obj.InsertRecord("raed", "1987");
面向组件编程,后者是优选的: 是这样的:
obj.name = "raed";
obj.year = "1987";
obj.InsertRecord();
顺便说一句,这是属于programmers.stackexchange
问题是哪个更适合这种情况。前者因为只有一个属性被设置,但后者都是非空字段,后者可能会失败。 –
如果这些是属性,它们应该遵循[C#命名约定](http://msdn.microsoft.com/en-us/library/x2dbyw72(v = vs.71).aspx) –