這是一個問題,我一直有,但現在是解決這個問題的時候:面向對象編程和對象組合,如何把組合屬性?
我試圖實現使用的公共屬性,如對象的組成:
Person {
public Car car;
}
Owner {
public Person person;
public Car car;
}
Car {
public Person person;
}
真是我的問題是:將公共或私人設置的組合屬性是一種很好的做法嗎?
的區別:
一)公共:做公益,存取速度快,並不複雜,因爲我只需要直接使用類似實例引用屬性:
$instancePerson.car.getNumberOfGearsGood()
的問題:汽車性能可以被任何人從任何地方修改。
B)私人:做私人的訪問,如果緩慢,需要使用方法來獲得這些屬性,如:
$instancePerson.getCar().getNumberOfGearsGood()
當我說慢,是因爲你需要做的一個方法二法呼叫,而在公共解決方案中,只有你需要做一個。
我知道很多開發人員和軟件工程師會更喜歡私人解決方案,但是您能解釋一下那裏的性能嗎?
不清楚你使用的是什麼語言,你寫的東西看起來不像java或C++。使用getter的目的是允許您在不修改調用者的情況下更改屬性的內部表示並防止意外修改該屬性。 – pvg
語言不重要(以它爲例),是的,我知道你寫了什麼,但我的問題是關於性能比Person.car更快做Person.getCar()... obviusly ... –
它是沒有具體細節就沒有意義或可回答的問題,因此根本不是一個具體的編程問題。在某些語言和運行時中,這可能會對其他語言產生性能影響,這可能不是由於優化。您需要提出一個更具體的問題,或者將其交給軟件工程堆棧交換。 – pvg