声明:
本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 百度百科的定义:
* Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,
* 隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面
*
* 可简单地将外观模式理解为
* 将复杂子系统的各种接口(方法)统一成一个方法
* (对客户来说只是一个业务操作,但这操作可能是由各子系统协调共同完成)提供给客户使用,达到方便和安全的效果
*
* 比如客户端要做某个操作(传递了参数p):doSomething(Parameter p),那我们就直接定义一个doSomething(Parameter p)的Facade
* 这样,客户可以按他的理解和要求直接调用;我们可以在Facade里的doSomething调用各个子系统来完成这个功能而不必暴露给客户端
* 也避免客户端和子系统打交道,达到解耦的效果
*/
interface IModuleA {
void testA();
//这个方法可以在Facade里面决定是否暴露给客户
void hiddenTestA();
}
interface IModuleB {
void testB();
}
interface IModuleC {
void testC();
}
interface IFacade {
void testForClient();
}
class ModuleA implements IModuleA {
public void testA() {
System.out.println("test A");
}
public void hiddenTestA() {
System.out.println("hiddenTest A");
}
}
class ModuleB implements IModuleB {
public void testB() {
System.out.println("test B");
}
}
class ModuleC implements IModuleC {
public void testC() {
System.out.println("test C");
}
}
class Facade implements IFacade {
boolean show = false;
public void testForClient() {
IModuleA a = new ModuleA();
a.testA();
if (show) {
a.hiddenTestA();
}
IModuleB b = new ModuleB();
b.testB();
IModuleC c = new ModuleC();
c.testC();
}
}
public class FacadePattern {
public static void main(String[] args) {
IFacade facade = new Facade();
facade.testForClient();
}
}
分享到:
相关推荐
c++设计模式-结构型模式-外观模式;qt工程;c++简单源码; 外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,...
设计模式(15)-Facade Pattern 设计模式(14)-Flyweight Pattern C#设计模式(13)-Proxy Pattern C#设计模式(12)-Decorator Pattern C#设计模式(11)-Composite Pattern C#设计模式(10)-Adapter ...
外观模式 Facade 设计模式 还请各位大S指教。
设计模式之外观模式 facade 采用JAVA实现,请结合文档看,欢迎讨论。。
4.5 FACADE(外观)—对象结构型模式 121 4.6 Flyweight(享元)—对象结构型模式 128 4.7 Proxy(代理)—对象结构型模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter 与 Bridge 144 4.8.2 Composite、 Decorator ...
设计模式之门面模式(Facade模式),介绍门面模式,实际例子分析,代码讲解等
设计模式1,FACADE模式,Adapter facade Adapter singleton proxy
java 设计模式 Facade外观模式 Simple Factory 简单工厂模式,代码有点罗嗦,不过可移植性很强
C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式) (Level 300)
JAVA设计模式-day2,请的行业大能讲得课程,涉及...• 9、 外观模式(Facade); 10、 桥接模式(Bridge); 11、 组合模式(Composite))、关系模式(11种),挺不错的,或许对某些专业技术人事有帮组,推荐给大家。
设计模式面面观(13):外观模式(Facade Pattern)-结构型模式 http://blog.csdn.net/fanweiwei/archive/2008/04/17/2299641.aspx
facade设计模式 里面有设计模式的实现
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第11节:结构型模式Facade外观模式
《asp.net设计模式》是为那些熟悉.net框架但希望了解如何改进编码方式以及如何运用设计模式、设计原则和最佳实践来提高代码的可维护性和适应性的asp.net开发者而写的。那些以前已经体验过设计模式的读者可能希望跳...
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
Laravel开发-facade-resolver 用于将外观名称解析为实际类名的laravel命令
- 外观模式(Facade) - 享元模式(Flyweight) - 观察者模式(Observer) - 模板方法模式(Template Method) - 策略模式(Strategy) - 责任链模式(Chain of Responsibility) - 中介者模式(Mediator) - 访问者模式...
第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较...
4.5 FACADE(外观)——对象结构型模式 4.6 FLYWEIGHT(享元)——对象结构型模式 4.7 PROXY(代理)——对象结构型模式 4.8 结构型模式的讨论 第五章 行为模式 5.1 CHAIN OF RESPONSIBIL ITY(职责链)——对象行为...
goshop-facade-ocr-2.2-SNAPSHOT.jar 发现没有此jar ,就传了