これは、OOD ベースのインタビューの質問です。
Furniture クラスがあり、WoodChair、WoodTable、SteelChair、SteelTable などの派生クラスがあります。インタビュアーは、アイアンチェア、アイロンテーブルなどのクラスをもっと増やしたいと考えていました。どうすればいいですか。デザインはまだ公開されておらず、指定された内容全体を自由に変更できます。
基本的に家具の種類を構築しているので、ここではタイプ (椅子/テーブル) やメイク (鉄/木材) などのプロパティを持つ Furniture クラスでビルダー パターンを使用する必要があると考えました。 buildLegs(..)、buildSurface(..)、ChairBuilder、TableBuilder などのサブクラス、およびそれらすべてをインスタンス化する Director クラス。既存のデザインに影響を与えることなく、任意のメーカーの新しいタイプの家具をできるだけ多く追加し、それらのビルダー クラスを構築することができます。
Builder Vs Decorator patternを読んだ後、私はここで Decorator パターンを使うべきではないと確信しました。しかし、ビルダーも大丈夫ですか?それはやり過ぎですか?
また、家具の作りをどう扱っていいのかわからない。make に enum 型の機能を追加するだけで十分でしょうか? [鋼、鉄、木] メーカーは家具アイテムに新しい動作を追加しません。