外观模式

阅读《研磨设计模式》笔记。之后若有所感,再补充。
外观模式 的目的是:让外部减少与子系统内的多个模块的交互。
示例:
/**
 * @description
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public interface AModuleApi {
	public void testA();
}

/**
 * @description
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public class AModuleImpl implements AModuleApi{

	/* (non-Javadoc)
	 * @see facade.AModuleApi#testA()
	 */
	@Override
	public void testA() {
		System.out.println("现在在A模块里面操作testA方法!");
	}
}

/**
 * @description
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public interface BModuleApi {
	public void testB();
}

/**
 * @description
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public class BModuleImpl implements BModuleApi{

	/* (non-Javadoc)
	 * @see facade.AModuleApi#testA()
	 */
	@Override
	public void testB() {
		System.out.println("现在在B模块里面操作testB方法!");
	}
}

/**
 * @description
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public interface CModuleApi {
	public void testC();
}

/**
 * @description
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public class CModuleImpl implements CModuleApi{

	/* (non-Javadoc)
	 * @see facade.AModuleApi#testA()
	 */
	@Override
	public void testC() {
		System.out.println("现在在C模块里面操作testC方法!");
	}
}

/**
 * @description 外观对象
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public class Facade {
	
	public void test(){
		AModuleApi a = new AModuleImpl();
		a.testA();
		BModuleApi b = new BModuleImpl();
		b.testB();
		CModuleApi c = new CModuleImpl();
		c.testC();
	}
}

/**
 * @description 外观模式本质是:封装交互,简化调用
 * @author liuwei
 * @date 2014-4-16
 * @version 1.0
 */
public class Client {
	public static void main(String[] strs){
		//使用Facade
		 new Facade().test();
	}
}

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