设计模式(八):外观模式

xiaoxiao2021-02-28  91

外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

外观模式结构图:

例子:

1、创建外观类,煎饼果子类

/** * Facede外观类,煎饼果子类 */ public class Pancake { } 2、创建子系统类

(1)生菜类

/** * Subclass子系统1,生菜类 */ public class Lettuce { public void addLettuce(){ System.out.println("加生菜"); } } (2)烤肠类

/** *Subclass子系统2,烤肠类 */ public class Sausage { public void addSausage(){ System.out.println("加烤肠"); } } (3)培根类

/** * Subclass子系统3,培根类 */ public class Bacon { public void addBacon(){ System.out.println("加培根"); } }

(4)辣椒类

/** * Subclass子系统4,辣椒类 */ public class Pepper { public void addPepper(){ System.out.println("多放辣"); } } 3、完善外观类,引入子系统,并创建不同的组合方法

/** * Facede外观类,煎饼果子类 */ public class Pancake { private Lettuce lettuce;//生菜 private Bacon bacon;//培根 private Pepper pepper;//辣椒 private Sausage sausage;//烤肠 public Pancake() { lettuce=new Lettuce(); bacon=new Bacon(); pepper=new Pepper(); sausage=new Sausage(); } /** * 组合一 */ public void CombinationOne(){ System.out.println("煎饼果子来一套"); sausage.addSausage(); lettuce.addLettuce(); } /** * 组合二 */ public void CombinationTwo(){ System.out.println("煎饼果子来一套"); bacon.addBacon(); lettuce.addLettuce(); pepper.addPepper(); } } 4、测试

public class Test { public static void main(String[] args) { Pancake pancake=new Pancake();//创建外观类对象 pancake.CombinationOne(); System.out.println("---------"); pancake.CombinationTwo(); } } 运行结果:

煎饼果子来一套 加烤肠 加生菜 --------- 煎饼果子来一套 加培根 加生菜 多放辣

转载请注明原文地址: https://www.6miu.com/read-96325.html

最新回复(0)