概覽
1. 簡單工廠模式
簡單工廠模式的要點在於:當你需要什麼,只需要傳入一個正確的參數,就可以獲取你所需要的對象,而無須知道其創建細節。
優點:將對象的創建和使用分離開,簡化對象的創建。
缺點:不靈活,隨着產品類的數目增多,工廠類會變得越來越龐大,難以維護。
2. 工廠模式
工廠模式的要點在於:將具體產品類的創建推遲到抽象工廠子類中實現
3. 裝飾者模式
-
裝飾者的角色:
抽象構件角色(Component):給出一個抽象接口,以規範準備接收附加責任的對象。
具體構件角色(Concrete Component):定義將要接收附加責任的類。
裝飾角色(Decorator):持有一個構件(Component)對象的引用,並定義一個與抽象構件接口一致的接口。
具體裝飾角色(Concrete Decorator):負責給構件對象“貼上”附加的責任。 -
代碼案例
//抽象構件角色 public interface Component { public void doSomething(); }
//具體構件角色 public class ConcreteComponent implements Component { @Override public void doSomething() { System.out.println("功能A"); } }
//裝飾者角色 public class Decorator implements Component { //維護一個抽象構件角色 private Component component; public Decorator(Component component) { this.component = component; } @Override public void doSomething() { component.doSomething(); } }
//具體裝飾者角色 public class ConcreteDecorator1 extends Decorator { public ConcreteDecorator1(Component component) { super(component); } @Override public void doSomething() { super.doSomething(); this.doAnotherThing(); } private void doAnotherThing() { System.out.println("功能B"); } }