设计模式-外观模式

      最近在很多场合都看见设计模式的影子,一直以来,都投入主要时间在搞算法与数据结构,很来发现设计模式真的很重要。有的时候代码的可维护、可重用、可扩展确实胜过单纯的算法效率高。所以拾起大牛书籍《大话设计模式》同时参考网上诸大牛的博客,开始我的设计模式之旅。

       今天先介绍一下外观模式。

概念:

       外观模式(Facade):为多个子系统的一组接口提供一个统一的界面,此模式定义了一个的高级接口,从而简化用户对子系统的使用操作。

具体组成:

         (1)、子系统类:实现不同子系统的底层功能。

        (2)、外观类:组合封装用户经常使用的不同子系统的方法,形成高层接口。需要声明子系统的引用。

优点:

     子系统往往因为不断重构而变得复杂,可以尝试给他们增加统一接口外观类,来简化对其的组合操作。

贴段代码:

 
package Pattern;

/*
 * 子系统类1
 */
class SubSystemOne {
	public void ShowSubSystemOne() {
		System.out.println("子系统一启动!");
	}
}

/*
 * 子系统类2
 */
class SubSystemTwo {
	public void DoSubSystemTwo() {
		System.out.println("子系统在运行!");
	}
}

/*
 * 子系统类3
 */
class SubSystemThree {
	public void SleepSubSystemThree() {
		System.out.println("子系统在休眠!");
	}
}

/*
 * 外观类
 */
class Facade {
	SubSystemOne mySubSystemOne;
	SubSystemTwo mySubSystemTwo;
	SubSystemThree mySubSystemThree;

	public Facade() {
		mySubSystemOne = new SubSystemOne();
		mySubSystemTwo = new SubSystemTwo();
		mySubSystemThree = new SubSystemThree();
	}

	public void MethodA() {
		mySubSystemOne.ShowSubSystemOne();
		mySubSystemTwo.DoSubSystemTwo();
	}

	public void MethodB() {
		mySubSystemOne.ShowSubSystemOne();
		mySubSystemThree.SleepSubSystemThree();
	}
}

public class Pattern {
	public static void main(String[] args) {
		try {
			Facade myFacade = new Facade();
			myFacade.MethodA();
			myFacade.MethodB();
		} catch (Exception e) {
			System.out.println("Java异常发生!");
		}
	}
}

 
 

你可能感兴趣的:(设计模式,外观模式)