• Head First设计模式读书摘要


    这本书读起来很有意思,插图很多,对话形式的内容,让人很有代入感。

     2015-06-01

    第1章  设计模式入门

    主要通过一个鸭子的例子向读者说明了设计模式的思想,提到了三个设计原则。

    • 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起
    • 针对接口编程,而不是针对实现编程
    • 多用组合,少用继承(组合有更大的弹性,可以运行时动态改变行为)

    第一个设计模式:策略模式定义了算法簇,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的用户。

    2015-06-02 22:52:50

    第2章 观察者模式

     出版者(主题,subject)+订阅者(观察者,observer)=观察者模式

     观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。

     又一个设计原则:为了交互对象之间的松耦合设计而努力  

     两种做法:推push信息模式(主题推送所有信息),拉pull模式(观察者主动获取自己需要的信息)

    2015-06-05 14:42:10

    第3章 装饰者模式

     生活中的例子:咖啡店的咖啡,除了基本饮料,还会加入调料,这时候价格怎么计算?用继承会造成“类爆炸”,考虑新的设计模式。

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

     设计原则:类应该对扩展开放,对修改关闭。

      装饰者与被装饰对象有相同超类型,装饰着可以在所委托被装饰者的行为之前与/或之后,加上自己的行为,以达到运行时动态扩展类行为。

    第4章 工厂模式

    披萨下单制作过程,下单是一个变化的部分,不变的是后期制作工序。将变化部分和不变部分分开。

    工厂模式用来封装对象的创建,通过让子类决定该创建的对象是什么,来达到将对象创建过程封装的目的。

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

    设计原则:要依赖抽象,不要依赖具体类(Dependency Inversion Principle,依赖倒置关系)

    抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

    工厂模式与抽象工厂模式的区别:工厂模式通过子类继承,实现基类的工厂方法。抽象工厂模式提供一个抽象接口,通过对象的组合实现

    (对工厂模式的理解还是不清楚,再看)

    第5章  单件模式

    Singleton Pattern确保一个类只有一个实例,并提供一个全局访问点。

    经典的单件模式实现,在多线程环境下会出现问题,可以利用同步方法解决,但是效率低下。

    改进方法:1)do nothing 如果对效率要求不高;2)立即创建实例,不用延迟实例化的做法;3)用双重检查加锁,在getInstance()中减少使用同步(其实只有在第一次创建实例是才加锁)

  • 相关阅读:
    .NET C#模仿Windows方式打开指定文件所在的文件夹,并定位到文件【加强版】
    .NET C#执行程序功能时根据Windows用户角色动态提权执行相关业务功能的方法
    .NET C#实现string类型List<T>二分查找算法功能(支持Contains模糊匹配)
    由于定时模块的错误导致系统无法启动
    mongodb执行js命令
    查看mongodb执行命令耗时
    es设置translog保留时间
    mongodb设置开机自启动
    python写数据到elasticsearch
    es查询相关
  • 原文地址:https://www.cnblogs.com/sherPur/p/4545191.html
Copyright © 2020-2023  润新知