zoukankan      html  css  js  c++  java
  • Headfirst-设计模式

    前言

      去年的这会儿咱们接触到了大话设计模式,感觉设计模式的世界很神奇,还感觉能想出这些代码思想的人很6,于是我们认识到了大话设计中设计模式的结构型模式、创建型模式还有行为型模式,说到底,看完了才发现,其实这些模式都离不开面向对象的特性:封装、继承、多态。要准备软考了,又接触到了java版的设计模式,于是拿来小小的总结一下,就当是复习大话设计模式也当重新认识了java版的设计模式了,其实换汤不换药,设计的思想还是一样的。

    内容

      headfirst设计模式这本书光看前言部分,总是很能激起看书的热情,但是看着看着,感觉好多东西都说的太啰嗦了,而且编的小故事罗里吧嗦的一点都不好笑,导致代码部分很乱,一片一片的,但是这本书突出的优点就是在讲述好几个设计模式的部分都加入了对比的思想,几个相似的模式的对比,很有意思。headfirst设计模式这本书主要讲了大概13种设计模式:



    每种设计模式的精华之处和原则部分:

    • 行为型模式

    观察者模式:

    精华:定义了对象直接的一对多依赖,这样一来,当一个对象改变转变状态时,它的所有依赖者都会收到通知并自动更新。

    原则:为交互对象之间的松耦合设计而努力。松耦合设计更有弹性,更能应付变化。

     

    模板方法模式:

    精华:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

    原则:别调用我们,我们会调用你。

     

    命令模式:

    精华:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也可以支持可撤销的操作。

     

    状态模式:

    精华:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

     

    策略模式

    精华:定义了算法族,分别封装起来,让它们之间相互替换,此模式让算法的变化独立于使用算法的客户。

    原则:·将变化的地方封装起来了(封装变化)。

           ·多用组合,少用继承。

           ·针对接口编程,不针对实现。

     

    迭代器模式:

    精华:提供一种方法顺序访问一个聚合对象的各个元素,而又不暴露其内部的表示。

    原则:一个类应该只有一个引起变化的原因。


    • 结构型模式

    适配器模式:

    精华:将一个类的接口,转换成客户期望另一个接口。适配器让原本不兼容的类可以合作无间。

    原则:最少知识原则:只和你的密友谈话。

     

    装饰模式:

    精华:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更加有弹性的替代方案。

    原则:对扩展开放,对修改关闭。

     

    组合模式:

    精华:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。

    原则:一个类应该只有一个引起的变化的原因。

     

    代理模式:

    精华:为另一个对象提供一个替身或占位以控制这个对象的访问。

     

    外观模式:

    精华:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。

    原则:最少知识原则:只和你的密友谈话。

    • 创建型模式

    单件模式:

    精华:确保一个类只有一个实例,并提供全局访问点。

     

    工厂模式:

    精华:定义了一个创建对象的接口,但由子类决定要实例化哪一个。工厂方法让类把实例化推迟到子类。

    原则:要依赖抽象,不要依赖具体。


    小结

    通过上面的学习,总感觉学的有点太理论,有时间得找几个小例子实践一下。


    感谢您的宝贵时间···

  • 相关阅读:
    tuple 元组及字典dict
    day 49 css属性补充浮动 属性定位 抽屉作业
    day48 选择器(基本、层级 、属性) css属性
    day47 列表 表单 css初识
    day 46 http和html
    day 45索引
    day 44 练习题讲解 多表查询
    day 40 多表查询 子查询
    day39 表之间的关联关系、 补充 表操作总结 where 、group by、
    day38 数据类型 约束条件
  • 原文地址:https://www.cnblogs.com/zhoulitong/p/6412334.html
Copyright © 2011-2022 走看看