一句话设计模式

一句话设计模式

设计模式虽然学了好几年了,但是每次重新去看都会有不一样的领悟。
最早买的一本书是陈杰著的《大话设计模式》,算是自己入门的一本书,因为自己是.net方向,作者也使用c#讲解,浅显易懂,非常适合新手。
后来在知乎有大神推荐《设计模式之禅》,作者使用Java语言,详尽讲解各种应用场景及扩展,以及组合使用,加上自己也要转Java,算是对Java预热学习吧。
不过说实话,虽然学了,但是并没有达到灵活应用,套的最多的就是工厂模式和策略模式。
三月份沉下心来跟着Tom学习设计模式,了解了spring中对各种设计模式的应用,才明白必须跳出局限的思维,开发中不是套用,而是根据7大设计原则合理取舍。
自己的第一个Java项目根据业务合理建模,然后总体采用工厂+策略,最后秉持开闭原则去扩展,发现不知不觉就用到了装饰,模板方法等模式。
总结一下自己对每个模式的理解,算是对这段时间学习的一个总结吧。

  1. 工厂方法模式:定义创建对象的接口,创建对象延迟到子类中
  2. 抽象工厂模式:定义产品等级和产品族,有几个等级就有几个工厂类,有几个族就有几个创建方法,是工厂方法的集合
  3. 单例模式:永远只有一个实例
  4. 原型模式:默认Object.clone()实现了浅拷贝,深拷贝需要自己实现(理解值类型和引用类型是前提)
  5. 建造者模式:和工厂模式的区别是注重对象细节的构建顺序,经常结合模板方法模式使用
  6. 代理模式:为调用方提供代理控制访问,可以在代理类中对目标方法执行前后的过滤、准入等操作(和装饰器的细微差别),是AOP的核心设计
  7. 适配器模式:通过继承源角色以及实现目标接口,使目标接口适配到了原角色的能力
  8. 桥接模式:核心是拒绝继承,使用聚合关系封装,使得抽象和实现解耦
  9. 享元模式:使用享元工厂池化技术获取对象,提取共性作为外部状态(唯一确定一个对象),变化的属性在系统运行时动态改变,带来的好处是减少对象创建避免内存溢出。
  10. 组合模式:描述部分整体关系的树形结构,透明模式把元素操作方法提取到了抽象类,树枝和树叶都需要实现;安全模式则把操作方法下沉,由树枝和树叶分别决定。
  11. 委派模式:spring特有的设计模式,代理+策略模式实现,参考spring mvc DispatcherServlet的实现
  12. 模板方法模式:开发中经常使用的一种模式,抽象类中定义抽象钩子方法和用以编排流程的模板方法,子类通过重写钩子方法实现流程的个性化定制
  13. 门面模式:子系统访问必须通过Facade类
  14. 装饰器模式:注重对方法本身的功能进行增强或者减弱,这是和代理模式的差异点,尽管类图相似,但实际使用需要根据这个差别来区分
  15. 策略模式:一个策略一个类,上下文context如果继承接口则退化成代理模式。
  16. 责任链模式:每个处理对象保留对下一个对象的引用,形成链式处理结构,结合建造者模式可以对调用方更友好。
  17. 迭代器模式:由迭代器来提供支持遍历容器或集合中的元素的能力,没落的设计模式!
  18. 命令模式:N个命令N个类,执行接受相分离
  19. 状态模式:N个状态N个类,每个状态类维护自身行为以及过渡到其它状态的行为。
  20. 备忘录模式:备份对象,以供后续恢复(在对象之外保存对象内部状态)
  21. 中介者模式:即把错综复杂的对象依赖通过中介者解耦,呈现星型发散结构。
  22. 解释器模式:将语法拆分为终结符表达式和非终结符表达式类,每个终结符对应一个类,比如四则运算,数字是终结符,±×÷是非终结符。
  23. 观察者模式:也叫发布订阅模式,由被观察者(发布方)除了维护自身行为之外,还要实现增、删、通知观察者的能力。
  24. 访问者模式:访问者声明访问的对象,被访问者声明接受哪些访问者,访问者可以在不改变被访问者数据的前提下重新定义操作。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

by_ron

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值