在面向對象的設計中,以下哪項更好?面向對象設計:使用方法參數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) –