これは私が常に持っていた質問ですが、今それを解決するための時間です:オブジェクト指向のプログラミングとオブジェクトの構成、どのように構成プロパティを配置する?
私のようなパブリック属性使用してオブジェクトの構成を実装しようとしています:
Person {
public Car car;
}
Owner {
public Person person;
public Car car;
}
Car {
public Person person;
}
を本当に私の質問は次のとおりです。そのコンポジションプロパティを公開または非公開に設定するのがよい方法ですか?
$instancePerson.car.getNumberOfGearsGood()
:
違い:
A)公開:私だけのようにインスタンスにプロパティを直接参照する必要があるためやっ公共、アクセスは、高速かつ複雑ではありません問題:車のプロパティはどこからでも誰でも変更できるようになっています。
B)プライベート:アクセスが遅い場合は、プライベートをやっなど、これらのプロパティを取得するメソッドを使用する必要がある:私はあなたがメソッド2つのメソッドを実行する必要があるため、低速であると言うとき
$instancePerson.getCar().getNumberOfGearsGood()
公共のソリューションでは、あなただけが行う必要があります。
多くの開発者やソフトウェアエンジニアがプライベートソリューションを好むことは知っていますが、そこでのパフォーマンスについて説明できますか?
あなたが使っている言語が明確ではなく、あなたが書いたものはjavaやC++のようには見えません。 getterを使用する目的は、呼び出し元を変更せずにプロパティの内部表現を変更し、プロパティの意図しない変更を防ぐことです。 – pvg
言語は重要ではありません(例として取る)とはい私はあなたが書いたことを知っていますが、私の質問はPerson.carよりもPerson.carを実行する方がパフォーマンスが最速であるということですobviusly ... –
具体的なプログラミングの質問ではなく、意味のある、答えることのできる質問ではありません。いくつかの言語とランタイムでは、これは他の言語でパフォーマンスに影響を与える可能性があります。最適化のためではありません。より具体的な質問を出すか、またはこれをソフトウェアエンジニアリングスタック交換に持ち込む必要があります。 – pvg