このコードを書き直すことによって、この次の例で開封の原則を適用したいと考えています。開封の原則の例
class MyQueue<E> extends ArrayList<E> implements Queue<E> {
int front=0, back=0;
MyQueue() { }
…
void put(E e) { add(back++, e); ...}
E get() { E elem = get(front++); …}
}
解決策はどのデザインパターンに最もよく一致し、なぜですか?それが次のベストマッチよりも優れた試合である理由を説明してください。
私はこのクラスがどのような機能を拡張するか考えていません。すでにゲッターとセッターがあります。どんなタイプの拡張機能を適用できるか分からずに、私はこのコードをどのように書き換えるのか分かりません。
私が知っているもの: OCPは延長延長のために開かれています。したがって、一般的なアプローチは、それを抽象化する方法を理解することです。だから私の最初の考えは抽象メソッドを持つ抽象クラスにすることでした。次に、MyQueue()
を拡張するすべてのクラスは、望みどおりにgetterメソッドとsetterメソッドを実装できます。そして、私がこれを行うと、これはアダプターのパターンによく似ていると思います。
私が理解している間違いを修正してください。
私はこれがなぜ落とされているのかわかりません...私は質問するためのガイドラインに従っています。誰かが明確にすることはできますか?それは理由を知らずにただ投票されるのを助けるものではありません。 –
おそらく、それは宿題や意見を求めるように見えるために下落したでしょう。 – Andreas
質問はとてもいいです。宿題に近いかもしれないが、それでも実際には「OCP」の理解に似ている。これは常に明白ではありません。 – RMachnik