(これは C に似た環境です) car と bodyShop の 2 つのインスタンス オブジェクトがあるとします。車には、カラー iVar と対応するアクセサーがあります。bodyShop には、車のオブジェクトを取り込んでその色を変更する「paintCar」という名前のメソッドがあります。
実装に関しては、実際に bodyShop で車のオブジェクトの色を変更できるようにするには、2 つの方法があります。
「&」演算子を使用して、車へのポインターを渡します。次に、bodyShop は、色を変更する必要がある何らかのメソッドを実行するように車に指示するか、車のアクセサーを直接使用することができます。
car オブジェクトを値で渡し、同じようなことを行って色を変更し、メソッドが新しい色の car オブジェクトを返すようにします。次に、元の車のオブジェクトを新しい車のオブジェクトに割り当てます。
オプション 1 の方が簡単に思えますが、OOP のベスト プラクティスに沿っているかどうか疑問に思っています。一般的に「最大OOP」の場合、「&」演算子は良いですか、それとも悪いですか? または、このスーパー OOPer を作成するためのより良いオプションを完全に見逃しているのかもしれません。お知らせ下さい :)