设计模式个人理解

设计模式个人理解

创建型模式
前面讲过,社会化的分工越来越细,自然在软件设计方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势。因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,
从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:
简单工厂模式(Simple Factory);聚集在一个工厂方法中创建各种对象,是静态的。
工厂方法模式(Factory Method);把工厂抽象出一个接口,动态扩展。
抽象工厂模式(Abstract Factory); 把工厂也抽象出来
创建者模式(Builder);list各种对象 把复杂的对象分解成各种简单对象放到list中,自由组合
原型模式(Prototype); clone操作
单例模式(Singleton)。一个类只有一个对象,构造函数私有化,
说明:严格来说,简单工厂模式不是GoF总结出来的23种设计模式之一。
2.2 结构型模式
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,
因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。
对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:
外观模式(Facade); ** 就像一个cpu、内存、主板,用一个主机封装,只要开了主机就调用了里面所有的对象。
适配器模式(Adapter); ** 处理接口不兼容 用一个适配器类统一各接口及实现类创建和实现调用
代理模式(Proxy); ** 静态代理、动态代理, 自己修改封闭,让另一个类来加强该功能,直接new出新功能对象。
装饰模式(Decorator); ** 被装饰者和装饰器共同的接口 被装饰者 装饰器(抽象) 具体装饰器 ,让其他类来加强该功能,构造时把被装饰对象传入。
桥模式(Bridge); ** 抽象类和和实现分离,用接口 聚合
组合模式(Composite); ** 树形结构 部门和整体的关系
享元模式(Flyweight) * 在对象工厂中用hashmap把保存对象,下次在创建避免直接从 map对象取,用于减少大量重复对象创建,减少内存开销
2.3 行为型模式
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,
它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:
模板方法模式(Template Method); 抽象类定义final的方法,有子类只能具体实现,不能更改模版。可以添加钩子函数,决定是否要实现该方法。
观察者模式(Observer); ** 当一个对象被修改时,则会自动通知它的依赖对象。 在抽象类里有一个 ArrayList 存放观察者们
状态模式(State); *
策略模式(Strategy); 把策略算法抽象出来,策略家族各自实现自己的策略,组合方式到抽象类中,抽象的方法调用策略接口的方法,
子类中调用父类的构造方法,调用父类的注入具体的实现策略。完成不同的对象实现不同的策略。
职责链模式(Chain of Responsibility); 把自己当做自己的后继,客户端注入抽象对象,用工厂模式实现链条。
命令模式(Command);命令抽象出来,用一个调用类统一加载,和调用
访问者模式(Visitor);接受一个访问者,讲自身应用给访问者
调停者模式(Mediator);
备忘录模式(Memento);增加一个备忘录管理类 list
迭代器模式(Iterator);自己生成迭代器 一个接口实现haseNext,next方法,另一个接口返回迭代器,在把迭代器实现类作为要迭代对象的私有类。
解释器模式(Interpreter)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值