1. Pola dekorator
Memungkinkan fungsionalitas baru ke objek yang ada tanpa mengubah strukturnya. Jenis pola desain ini termasuk dalam pola struktural, yang merupakan paket kelas yang ada.
Pola ini menciptakan kelas dekoratif untuk membungkus kelas asli dan menyediakan fungsionalitas tambahan sambil mempertahankan integritas tanda tangan metode kelas.
Kami menunjukkan penggunaan mode dekorator melalui contoh berikut. Di antara mereka, kami akan menghiasi bentuk dengan warna yang berbeda tanpa mengubah kelas bentuk.
2. Realisasi
Kami akan membuat antarmuka bentuk dan kelas entitas yang mengimplementasikan antarmuka bentuk. Kemudian kami membuat class shapedecorator kelas dekoratif abstrak yang mengimplementasikan antarmuka bentuk dan menggunakan objek bentuk sebagai variabel instannya.
Redshapedecorator adalah kelas entitas yang mengimplementasikan shapedecorator.
DecoratorPatternDemo, kelas demo kami menggunakan RedshapedEcorator untuk menghias objek bentuk.
Langkah 1
Buat antarmuka.
Bentuk.java
bentuk antarmuka publik {void draw ();} Langkah 2
Buat kelas entitas yang mengimplementasikan antarmuka.
Persegi panjang.java
Kelas Publik Rectangle mengimplementasikan bentuk {@Override public void draw () {System.out.println ("bentuk: rectangle"); }}Circle.java
Lingkaran kelas publik mengimplementasikan bentuk {@override public void draw () {System.out.println ("Shape: Circle"); }} Langkah 3
Buat kelas dekoratif abstrak yang mengimplementasikan antarmuka bentuk.
Shapedecorator.java
kelas abstrak publik ShapedEcorator mengimplementasikan bentuk {bentuk yang dilindungi DecoratedShape; public shapedecorator (Shape DecoratedShape) {this.DecoratedShape = DecoratedShape; } public void draw () {DecoratedShape.Draw (); }} Langkah 4
Membuat kelas dekoratif entitas yang memanjang dari kelas ShapedEcorator.
Redshapedecorator.java
RedShapedEcorator kelas publik memperluas ShapedEcorator {public redshapedecorator (Shape DecoratedShape) {Super (DecoratedShape); } @Override public void draw () {DecoratedShape.Draw (); setredborder (DecoratedShape); } private void setredborder (bentuk dekoratedshape) {System.out.println ("Border Color: Red"); }} Langkah 5
Gunakan RedshapedEcorator untuk menghias objek bentuk.
DecoratorPatternDemo.java
public class decoratorPatternDemo {public static void main (string [] args) {bentuk lingkaran = new circle (); Bentuk redcircle = redshapedEcorator baru (lingkaran baru ()); Bentuk redrectangle = redshapedEcorator baru (persegi panjang baru ()); System.out.println ("Circle With Normal Border"); lingkaran.draw (); System.out.println ("/Ncircle of Red Border"); redcircle.draw (); System.out.println ("/nrectangle dari perbatasan merah"); redrectangle.draw (); }} Langkah 6
Verifikasi output.
Lingkaran dengan Bordershape Normal: Circlecircle of Red Bordershape: Circerborder Warna: Redrectangle dari Bordershape Merah: RectangleBorder Warna: Merah
Saya harap artikel ini akan membantu semua orang untuk mempelajari pemrograman Java.