您的位置:首页 > 其它

菜鸟学习 设计模式——结构型

2012-12-19 11:35 260 查看
前边我们简单总结了设计模式中的创建型,这篇博客我们来总结结构型的七种模式。结构型就是借由一以贯之的方式来了解元件间的关系,以简化设计。



一,装饰模式(Decorator):

1,定义:动态的给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。

2,结构:





3,总结:装饰模式是为已有功能动态添加更多功能的一种方式。在系统需要新的功能,即向旧的类中添加新的代码时,我们利用此模式,可以很好的解决。优点,把类中的装饰功能从类中搬移去除,这样可以简化原有的类,即有效的把类的核心职责和装饰功能区分开了。而且可以去除相关类中重复的装饰逻辑。

4,应用举例:服饰装扮,换皮肤。





二,代理模式(Proxy):

1,定义:为其他对象提供一种代理以控制对这个对象的访问。

2,结构:



3,用处:a,远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 b,虚拟代理,是根基需要创建开销很大的对象。通过此来存放实例化需要很长时间的真实对象。 c,安全代理,用来控制真实对象访问时的权限。 d,智能指引,是指当调用真实的对象时,代理处理另外一些事。

4,应用举例:通过第三者来追女朋友





三,外观模式(Facade):

1,定义:为子系统中的一组接口提供一个一致的界面,此模块定义了一个高层接口,这个接口使得这个子系统更加容易使用。

2,基本结构:



3,总结:a,在设计初期阶段,应该要有意识的将不同的两个层分离(例如经典的三层架构);b,在开发阶段,子系统往往因为不断的重构演化而变的越来越复杂。会产生很多很小的类,增加外观Facade可以提供一个简单的接口,减少他们之间的依赖;c,在维护一个遗留的大型系统时,用Facade对象交互,可以减少工作量。

4,应用举例;购买基金和股票的区别。

四,适配器模式(Adapter):

1,定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。

2,结构:



3,总结:在两个类所做的事情相同或者相似,但是具有不同的接口时,要使用此模式。当客户端可以统一调用统一接口时,可以更简单,更直接,更紧凑。

4,应用举例:外籍运动员打篮球。

五,组合模式(Composite)

1,定义:将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有了一致性。

2,结构:







3 ,在需求中是体现部分与整体层次结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象时,就应该考虑组合模式。 另外组合模式可以让客户一致的使用组合结构和单个对象。

4,应用举例:公司分支结构





六,桥接模式(Briage):

1,定义:将抽象部分与它的实现部分分离,使它们都可以独立的变化。

2,结构:







3,说明,将抽象部分与它的实现部分分离,就是实现系统可能有多角度分类,每一种分类都有可能变化,那么把这种多角度分离出来让它们独立变化,减少他们的耦合。

4,应用举例:向不同品牌的手机上安装不同的软件。

七,享元模式(Flyweight)

1,定义:运用共享技术有效的支持大量细粒度的对象。

2,结构:





3,说明:如果一个应用程序使用了大量的对象,而大量的这些对象造成很大的存储开销时就应该考虑使用; 还有就是对象的大多数状态可以外部状态,如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象,可以考虑使用享元模式。

4,应用举例:同时设计不同类的网站。





综上,为结构型的七种模式,多实践才能见真知。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: