读书笔记:《HeadFirst设计模式》

只是一些看书时的简单笔记,不定期更新
最后一次更新:2018-07-09

OO基础

抽象、封装、多态、继承

OO特性

可复用、可扩充、可维护

设计原则

  • 封装变化

    • 找出应用中可能需要改变之处,把它们独立出来,不要和那些不需要改变的代码混在一起。
    • 把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要改变的其他部分。
    • 系统中的某部分改变不会影响其他部分。
  • 针对接口编程,而不是针对实现编程。

  • 多用组合,少用继承。

  • 为了交互对象之间的松耦合设计而努力。

  • 对扩展开放,对修改关闭。

  • 依赖抽象,不要依赖具体类 。

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

设计模式

  • 策略模式(Strategy Pattern)

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

  • 观察者模式(Observer)

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

  • 装饰者模式(Decorator)

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

  • 工厂模式(Factory)

    • 简单工厂(Simple Factory)

      这其实是一种编程习惯而非设计模式:将实例化哪一个类的操作移到单独的一个类中,形成工厂和客户的关系。

    • 工厂方法模式(Factory Method)

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

    • 抽象工厂模式(Abstract Factory)

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

  • 单件模式(Singleton Pattern)

    用来创建独一无二的,只能有一个实例的对象。

  • 命令模式

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

  • 适配器模式

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

  • 外观模式

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

  • 模板方法模式

    x

  • 迭代器与组合模式

    x

  • 状态模式

    x

  • 代理模式

    x

  • 复合模式

    x

  • 桥接模式(Bridge)

    概述:使用桥接模式不只改变你的实现,也改变你的抽象。

    意图:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

其他

  • 松耦合

    当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。

    松耦合的设计之所以让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的相互依赖降低到了最低。

脑图地址:Process On

脑图预览

HeadFirst设计模式

##《HeadFirst设计模式》电子版:下载地址


##设计模式使用率排行(转)

使用频率所属类型模式名称模式
5创建型Singleton单件
5结构型Composite组合
5结构型FACADE外观
5结构型Proxy代理
5行为型Iterator迭代器
5行为型Observer观察者
5行为型Template Method模板方法
4创建型Abstract Factory抽象工厂
4创建型Factory Method工厂方法
4结构型Adapter适配器
4结构型Decrator装饰
4行为型Command命令
4行为型State状态
4行为型Strategy策略
3创建型Builder生成器
3结构型Bridge桥接
3行为型China of Responsibility职责链
2创建型Prototype原型
2结构型Flyweight享元
2行为型Mediator中介者
2行为型Visitor访问者
1行为型Interpreter解释器
1行为型Memento备忘录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值