结构型模式-门面(外观)模式

mac2022-06-30  38

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

  看个例子

package constructional.pattern.facade; /// <summary> /// 外观类 /// </summary> public class Facade { private SubSystemOne one; private SubSystemTwo two; private SubSystemThree three; private SubSystemFour four; public Facade() { one = new SubSystemOne(); two = new SubSystemTwo(); three = new SubSystemThree(); four = new SubSystemFour(); } public void MethodA() { System.out.println("\nMethod group A----"); one.MethodeOne(); two.MethodTwo(); four.MethodFour(); } public void MethodB() { System.out.println("\nMethod group B----"); two.MethodTwo(); three.MethodThree(); } } package constructional.pattern.facade; /// <summary> /// 子系统中的一个类 /// </summary> public class SubSystemOne { public void MethodeOne() { System.out.println("Sub System first method."); } } package constructional.pattern.facade; /// <summary> /// 子系统中一个类 /// </summary> public class SubSystemTwo { public void MethodTwo() { System.out.println("Sub System second method."); } } package constructional.pattern.facade; /// <summary> /// 子系统中一个类 /// </summary> public class SubSystemThree { public void MethodThree() { System.out.println("Sub System third method."); } } package constructional.pattern.facade; /// <summary> /// 子系统中一个类 /// </summary> public class SubSystemFour { public void MethodFour() { System.out.println("Sub System fourth method."); } }

  测试代码

package constructional.pattern.facade; public class Client { public static void main(String[] args) { // 由于Facade的作用,客户端可以根本不知道子系统类的存在 Facade facade = new Facade(); facade.MethodA(); facade.MethodB(); } }

  运行结果

转载于:https://www.cnblogs.com/liunianfeiyu/p/10116559.html

最新回复(0)