facade外观模式,简单明了的讲是,子系统封装聚集模式。facade外观模式遵循了迪米特法则,体现了松耦合原则。facade所面对的往往是多个类或其它程序单元,通过重新组合各类及程序单元,对外提供统一的接口,以便维护管理,减少复杂度和依赖性。
facade外观模式有点像数据库中视图的味道。在数据库中的视图对n个表的组合,客户端程序通过访问数据库的视图,而不必直接访问表,这样就减少了sql语句的编写,也可以减少很多代码量。如果数据的表万一有所改动,一般修改对应的视图就行了,如果要修改客户端程序,工作也不会很大。数据库的表之间的关系越复杂,越能体现这一点。
而在一个软件系统中,一个子系统(含有n>=1的个类)可能会有m个用户类调用,在最坏的情况下,如果这n个类的接口都要修改一下,那么就会有n+m的修改工作量。例如,在现实的软件开发中,如果需求变更,或者起先的设计错误,需要对代码进行修改,又恰恰碰到这种代码结构,如果应用了facade外观模式,修改的工作量将会大大的减少。例如:spring的示范例子jpetstore里面的org.springframework.samples.jpetstore.domain.logic.PetStoreFacade,ejb3的petstore里面的PetStoreService,PetStoreApplication等,就是一些典型的例子。
facade外观模式的代码框架:
public class MyClass1{
public void func(){}
}
public class MyClass2{
public void func(){}
}
public class Facade{
public void func(){
MyClass1 obj1 = new MyClass1();
obj1.func();
MyClass2 obj2 = new MyClass2();
obj2.func();
}
}
public class Client{
public static void main(String args[]){
Facade facade = new Facade();
facade.func();
}
}
分享到:
相关推荐
本篇文章将深入探讨C#面向对象设计模式中的Facade外观模式,这是一种结构型模式,旨在通过提供一个统一的接口来简化复杂的子系统。文章通过具体的例子和代码展示了如何在实际开发中运用这一模式,并解释了它与其他几...
C#面向对象设计模式纵横谈\C#面向对象设计模式纵横谈\10.Facade 外观模式(结构型模式).wmv )
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要... 这是第11节:结构型模式Facade外观模式
**外观模式(Facade Pattern)**是面向对象设计模式中的一种结构型模式,它提供了一个统一的接口,用于访问子系统中的各个部分。在C#编程中,外观模式可以帮助我们简化复杂的系统接口,使得客户端代码与复杂的内部...
外观模式是一种结构型设计模式,它的主要目标是提供一个统一的接口,用来简化对复杂系统的访问。在Java中,当你有一个复杂的子系统,而你希望客户端代码能够以一种更简洁、更易于理解的方式来与之交互时,就可以使用...
**Ajax与Facade模式** 在Web开发中,Ajax(Asynchronous JavaScript and XML)技术允许我们创建交互性更强、响应更快的网页。它通过在后台与服务器进行少量数据交换,实现了页面的部分更新,而无需刷新整个页面。...
外观模式(Facade Pattern)在软件工程中是一种设计模式,它为复杂的系统或子系统提供一个简单的接口,使得客户端可以更容易地使用这些系统或子系统。外观模式的核心思想是通过一个高层次的接口,隐藏子系统的复杂性...
Facade外观模式是设计模式中的一种,它的主要目标是为复杂的子系统提供一个简洁的接口,使得客户端(调用者)能更容易地使用这些子系统。在本文中,我们将深入探讨Facade模式的原理、应用场景及其实现方式。 Facade...
外观模式通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合,接下来就来看设计模式中的facade外观模式在JavaScript开发中的运用
**外观模式(Facade Pattern)**是一种结构型设计模式,它主要解决的是复杂系统或子系统对外暴露一个简单统一的接口,使得客户端无需关心内部复杂的交互细节。这种模式在实际开发中广泛应用,尤其在大型项目中,它能...
外观模式(Facade Pattern)是设计模式中的一种结构型模式,主要目的是为了解决复杂的系统接口问题,提供一个简单的统一入口,使得客户端可以更方便地使用系统。在Java中,外观模式通常用来隐藏系统的复杂性,对外只...
23种Python设计模式示例演示源码包,比如包括了工厂模式、Bridge桥接模式、Builder构建模式、Facade外观模式、Adapter适配器模式,Composite组合模式、Decorator装饰器模式,FactoryMethod工厂方法模式、Flyweight享...
设计模式面面观(13):外观模式(Facade Pattern)-结构型模式 http://blog.csdn.net/fanweiwei/archive/2008/04/17/2299641.aspx
**外观模式(Facade)**是软件工程中一种常用的设计模式,它为复杂的系统或子系统提供了一个统一的入口点,简化了客户端与复杂系统之间的交互。这种模式将客户端与子系统的内部实现细节隔离开来,使得客户端只需要...
在软件设计模式的世界里,`Command`(命令)和`Facade`(外观)模式是非常重要的两种设计模式。它们分别服务于不同的目的,但都是为了提高代码的可读性、可维护性和灵活性。 `Command`模式是一种行为设计模式,它将...