1. 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?例子1:设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具....
分类:
其他好文 时间:
2014-08-03 10:10:45
阅读次数:
277
1. 概述在数据结构里面,树结构是很重要,我们可以把树的结构应用到设计模式里面。例子1:就是多级树形菜单。例子2:文件和文件夹目录2.问题我们可以使用简单的对象组合成复杂的对象,而这个复杂对象有可以组合成更大的对象。我们可以把简单这些对象定义成类,然后定义一些容器类来存储这些简单对象。客户端代码必须...
分类:
其他好文 时间:
2014-08-03 10:08:45
阅读次数:
294
文章结构: 1.前言 2.设计原则 3.设计模式 3.1 创建型模式 3.2 结构型模式 3.3 行为型模式 前言设计原则和设计模式旨在帮助我们设计出一个可复用、可扩展、可维护的应用.设计原则:设计OR重构系统的指导方针.设计模式:解决某类问题性质有效的方法.设计原则和设计...
分类:
其他好文 时间:
2014-07-30 11:26:13
阅读次数:
416
构造型模式中的适配器模式、外观模式、装饰模式、代理模式都属于包装模式,都是对另外的类或对象的包装,只是各自的意图不同。
适配器模式通过对另外的类或对象的包装,将其接口转换为用户期望的接口,达到接口的适配的目的。
外观模式是对包装的一组类或对象提供一个高层接口,意图是简化接口,使系统更加容易使用。
装饰模式的意图是在不改变包装...
分类:
移动开发 时间:
2014-07-24 23:21:24
阅读次数:
304
在一一分析每种设计模式之前,我首先把所有的设计模式做了一个总结,大致分成三部分:创建型模式、结构型模式和行为型模式。
一、创建型模式
1、抽象工厂模式
提供一个创建一系列或相关依赖对象的接口,而无需指定它们具体的类。
2、建造者模式
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
3、工厂方法模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂...
分类:
其他好文 时间:
2014-07-24 10:39:44
阅读次数:
210
1.什么是外观模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用2.为什么要使用外观模式在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,从而导致客户程序随着子系统的变化而变化,那么如何简化客户程序与子系统之间的交互接...
分类:
其他好文 时间:
2014-07-16 22:52:38
阅读次数:
141
设计模式的另一大类型为结构型。共收录了7个模式,分别为适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。下面从特点和使用两方面小探,欢迎交流!
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。[大话设计模式]
特点:需要交流的两方,在数据和行...
分类:
其他好文 时间:
2014-07-15 22:17:45
阅读次数:
241
设计模式被分成了三大类型:创建型、结构型、行为型。顾名思义是按照模式的作用领域来粗略划分的。
这篇博文,将首先从设计模式的创建型写写读后的认识。希望在这里大家一同探讨,一起学习经典,让这些经典转化成我们的能力,在我们以后的编程生活中用到这些经典,优化我们的设计和程序。
创建型模式共收纳了5个模式,分别为工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式。...
分类:
其他好文 时间:
2014-07-14 13:06:08
阅读次数:
171
本文介绍7种结构型模式里的剩下两种:享元模式、代理模式。一、享元模式FlyWeight 享元模式比较简单且重要,在很多场合都被用到,只不过封装起来了用户看不到。其概念:运用共享内存技术最大限度的支持大量细粒度的对象。这个概念给的有些抽象,说白了就是如果内存中存在某个对象A,如果再次需要使用对象A的时候如果内存中有A这个对象就直接使用它,不要再次new了。如果没有,则重新new一个。基于这个特点,享...
分类:
编程语言 时间:
2014-07-12 17:27:16
阅读次数:
180
接上篇,本文介绍结构型模式里的组合模式、装饰模式、外观模式。一、组合模式(Composite) 组合模式:将对象组合成树形结构,表示“部分--整体”的层次结构。最终达到单个对象和组合对象的使用具有一致性。单看这句话貌似有点抽象,其实比较简单。 以李云龙的独立团为例,目的要统计赵嘉宇一战共歼灭敌人多少个。最高的级别是团,一个团有若干个营,一个营有若干个排,一个排有若干个战士。(为了简化问题,排下面就...
分类:
编程语言 时间:
2014-07-11 00:37:33
阅读次数:
237