デザインパターンクラスの場合、インストラクターは私のチームに、GoFのWYSIWYGエディターと非常によく似た、グリフの描画と永続化をサポートするアプリケーションの開発を依頼しました。
私のチームは、プレゼンテーション、コントローラー、ロジック、永続性という降順のレイヤーを備えたレイヤードアーキテクチャを使用することにしました。
ロジックは、グリフ表現のコレクション、それぞれの位置、およびいくつかの形状固有のプロパティを維持します。CSVとXMLは永続化形式である必要があるため、インストラクターはBuilderパターンを使用して統一された永続化メカニズムを作成することを提案しました。
この問題は、永続層内でビルダーを設計しようとしたときに発生します。レイヤーを使用しているため、永続レイヤーはGlyphタイプについて明示的に知ることはできません。ましてや、それらを抽象的な形から個々の形にキャストすることもできません。これにより、各Builderをコンストラクターとして渡すものについて頭を悩ませています。
次の問題は、Builderが使用するタイプを一般化するのが難しいことです。長方形には、線にはないプロパティがあります。
私はこれを行う方法を理解するのに多くの問題を抱えています。Builderのパターンは理解していますが、何かがクリックされていません。パターンを誤用していますか、それとも問題に正しく適合していませんか?
編集:インストラクターは、永続化されたフォーマットを再度ロードする必要があるとは言いませんでした。私の終了ソリューションは明らかにこれを簡単にするはずですが、現在の問題では、保存にのみ焦点を当てています。