设计模式(5) 结构型模式总览
来源:互联网 发布:vr球面投影算法 编辑:程序博客网 时间:2024/05/29 02:23
1 桥接模式(Bridge)模式
核心思想: 将接口抽象化(接口类)然后通过继承将客户端(操作类)隔离开来达到解耦的作用。
应用场景: A sir 和Bsir 两个人分别负责一个系统的两个模块,A需要调用B的实现操作,后期测试发现B sir的模块效率太低,于是B 需要优化改写自己的代码,如果这是A 和B没有事先定义好接口方式,那么很有可能B进行优化代码后A 也需要做相应的修改。这个时候桥接模式就派上用场了,需要A 和B先定义好彼此之间的调用关系,并用接口类的方式来实现调用。这样我们只需要保证接口不变,B如何修改只需要新增一个子类或者修改子类的方法而A在这个情况下并不需要做任何修改。
2 适配器(Adapter)模式
核心思想: ,Adapter模式提供了将已知类(第三方库)的接口转化为我们希望的接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
应用场景:我兄弟部门需要我们提供一个接口类创建文件,我们现在有类可以实现这样的功能只是接口和他们不大一样,那么就可以通过适配器方法来实现这个类。
3 装饰(Decorator)模式
核心思想: 为一个可能有很多不同动作的子类新增一个接口类(装饰)作为这许多子类的父类。
应用场景: 其实就是为了将这许多不相干的子类和component分离出来,同时又有一个统一的父类 Decorator来作为管理的接口(桥模式?异曲同工吧)。
4 组合(Composite)模式
核心思想: 将对象组合成树形结构(父子具有同属性)以表示”父-子”的层次结构,同时父子具有相同的接口信息。
应用场景: 在处理一些具有树状结构的数据时候,组合模式提供一个比较好的解决方案。比如xml格式的数据我们可以将它看做一棵树,节点(树枝)具有这样的特点:他既是子节点(树干的子节点)又可能是父节点(叶子的父节点)(相当于树干的作用)。这些节点具有和父节点相同的属性,这个时候用组合模式设计。
5 共享元(Flyweight)模式
核心思想: 共享模式就是一个资源池,用于减少那些需要重复创建有密度大的开销。
应用场景: 需要有资源池就可以采用这个模式。
6 外观(Facade)模式
核心思想: 为子系统中的一组接口提供一个一致的界面,这个接口使得这一子系统更加容易使用。
应用场景: 当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可 以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过Facade层。 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。当你需要构建一个层次结构的子系统时,使用Facade模 式定义子系统中每层的入口点。如果子系统之间是相互依赖的,你可以让它们仅通过Facade进行通 讯,从而简化了它们之间的依赖关系。
7 代理(Proxy)模式
核心思想: 逻辑上继承一个已有类的子类,从而扩展原有的子类的功能。
应用场景: 实现了逻辑和实现的解耦。将Proxy作为实现。ConcreteSubject左右逻辑部分。
--不对之处欢迎批评指教。以此作为结构型模式的开篇,后续将逐一详细介绍。
- 设计模式(5) 结构型模式总览
- Java结构型模式总览
- 设计模式-------创建型模式总览
- 设计模式总览
- 设计模式总览
- 设计模式总览
- 设计模式总览
- 设计模式总览
- 设计模式总览
- 设计模式总览
- 大话设计模式总览
- 大话设计模式总览
- DesignPattern设计模式-总览
- 设计模式总览
- 设计模式总览
- 设计模式----总览
- 设计模式之总览
- 设计模式--设计模式总览表
- java--接口实现的操作实例
- Elsevier旗下期刊投稿状态
- linux下mysql问题
- document对象元素访问
- java--异常处理的实例
- 设计模式(5) 结构型模式总览
- IDisposable接口(多转整理)
- websphere 使用JNDI连接数据源的配置文件编写
- 关于线程
- jbpm5学习资料
- 如何查询windows系统端口的占用情况?
- js执行引擎与浏览器内核分析
- 利用SCM加载驱动
- [哈佛幸福课13 听后感]