Java設計模式之裝飾者模式詳解
裝飾器模式(Decorator Pattern
)允許向一個現有的對象添加新的功能,同時又不改變其結構。這種類型的設計模式屬於結構型模式,它是作為現有的類的一個包裝。
以一個Person對象為例。Person作為一個接口,Student(學生)和Doctor(醫生)為Person接口的兩個具體類,DecoratorPerson為Person的裝飾類,可對具體類進行裝飾。ShoeDecorator(鞋子裝飾類)和DressDecorator(衣服裝飾類)為具體的裝飾類。這個案例可對學生和醫生進行裝飾。
具體代碼:
Person:
public interface Person { void description(); }
Student:
public class Student implements Person { @Override public void description() { System.out.println("學生"); } }
Doctor:
public class Doctor implements Person { @Override public void description() { System.out.println("醫生"); } }
DecoratePerson:
public class DecoratePerson implements Person { private Person person; public DecoratePerson(Person person) { this.person = person; } @Override public void description() { person.description(); } }
ShoeDecorate:
public class ShoeDecorate extends DecoratePerson { public ShoeDecorate(Person person) { super(person); } @Override public void description() { super.description(); System.out.println("穿鞋子"); } }
DressDecorate:
public class DressDecorate extends DecoratePerson { public DressDecorate(Person person) { super(person); } @Override public void description() { super.description(); System.out.println("穿衣服"); } }
測試類:根據裝飾的順序和對象不同,呈現不同的結果和順序
總結
本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- Java中超詳細this與super的概念和用法
- Java抽象類和接口使用梳理
- Java入門基礎之抽象類與接口
- 一篇文章帶你深入瞭解Java對象與Java類
- Java語法之 Java 的多態、抽象類和接口