このエッセイは、主にJavaを使用したシンプルなデコレーターデザインパターンの実装を紹介しています。
まず、デコレーターのデザインパターンのクラス図を見てみましょう。
図からわかるように、コンポーネントインターフェイスの実装クラスを飾ることができます。これらの実装クラスには、再び装飾することもできます。
以下は、Javaに実装されたシンプルなデコレーターデザインパターンです。それは、コーヒーの基本的な追加から始まり、牛乳、チョコレート、砂糖を追加し続けることができるデコレーターシステムを提供します。
インターフェイスコンポーネント{void method();}クラスコーヒーはコンポーネントを実装します{@override public void method(){// todo auto-enerated method stub system.out.println( "コーヒーに入れる"); }}クラスデコレーターはコンポーネントを実装します{public Component comp;パブリックデコレーター(コンポーネントコンプ){this.comp = comp; } @Override public void method(){// todo auto-fenated method stub comp.method(); }} concretededecoratea extends decorator {public component comp; public Concretedecoratea(Component comp){super(comp); this.comp = comp; } public void method1(){system.out.println( "Milk in Milk"); } public void method2(){system.out.println( "add sugar"); } public void method(){super.method(); method1();方法2(); }} class concretededecorateb extends decorator {public component comp; public concretedecorateb(component comp){super(comp); this.comp = comp; } public void method1(){system.out.println( "add Chocolate"); } public void method(){super.method(); method1(); }} public class testDecoreSpattern {public static void main(string [] args){component comp = new Coffee(); comp.method(); System.out.println( "--------------------------------------------");コンポーネントcomp1 = new Concretedecoratea(comp); comp1.method(); System.out.println( "--------------------------------------------");コンポーネントcomp2 = new concretedecorateb(comp1); comp2.method(); System.out.println( "--------------------------------------------");コンポーネントcomp3 = new Concretededecorateb(new Concretededecoratea(new Coffee())); comp3.method(); System.out.println( "--------------------------------------------");コンポーネントcomp4 = new Concretedecoratea(new Concretededecorateb(new Coffee())); comp4.method(); }}実行結果:
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。