设计模式-结构型模式
摘自大话设计模式
成都创新互联公司自成立以来,一直致力于为企业提供从网站策划、网站设计、网站设计、做网站、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
结构性模式
适配器模式:将一个类的接口转换为客户需要的另一个接口。使得原本由于不兼容的接口而不能一起工作的类可以一起工作。
特点:让接口不同的类通过适配器协调工作。
桥接模式:将抽象部分与实现部分分离,使他们可以独立工作。
特点:继承过渡使用的话,会使得设计复杂,难以维护,这时候可以解耦变化,然后通过组合的方式,把角色的继承改为组合。其实就是找出变化并封装然后聚合代替继承。
组合模式:将对象组合成树结构,表示‘部分-整体’的层次结构,组合模式使用户对单个对象和组合对象的使用具有一致性。
特点:可以忽略组合对象和单个对象的不同,统一使用组合模式中的所有对象。
装饰模式:动态的给对象添加额外的职能,就增加功能来说,装饰模式比子类更灵活。
特点:继承过渡使用,使得子类庞大,并且大部分子类只是为某一对象增加职责。用装饰模式的方式,可以动态透明的给单个对象增加职责。
外观模式:为子系统的一组接口提供一个一致性界面,外观模式定义了更高层接口,这个接口使得子系统更加容易使用。
特点:如果两个类不需要直接通信,那么就不要让他们直接发生关系,如果实在要调用,那么通过第三者转发调用。具体办法就是引入外观对象,他为子系统提供一个简单单一的屏障。
享元模式:为运用共享技术有效的支持大量细粒度对象。
特点:对象使用过多,会让内存占用太多,大量重复对象,会造成资源浪费。所以需要享元。
代理模式:为其他对象提供一种代理以控制对这个对象的访问。
代理与外观的区别:代理代表一个单一对象而外观代表一个子系统;代理的客户对象无法直接访问目标对象,由代理提供对单独的目标对象的访问控制,而外观的客户对象可以直接访问子系统中的各个对象,但通常由外观对象提供对子系统各元件功能的简化的共同层次的调用接口。
代理与适配器:代理是原来对象的代表,其他需要与这个对象打交道的操作其实都是与这个代表交涉;适配器不需要虚构出一个代理,只需要为应付特定使用目的,将原来的类进行一些组合。
网页名称:设计模式-结构型模式
文章起源:http://scyanting.com/article/geepeo.html