Head Firsh设计模式笔记

OO基础:抽象,封装,继承,多态

 

OO原则:封装变化、多用组合少用基础、针对接口编程,不针对实现编程、为交互对象之间的松耦合设计而努力、对扩展开发对修改关闭、依赖抽象,不要依赖具体类、只和朋友交谈、类应该只有一个改变的理由

 

单件模式:确保一个类只有一个实例,并提供全局访问点;

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

观察者模式:在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知并自动更新;

装饰者模式:动态地将责任附加到对象上,想要扩展功能,装饰者提供有别于继承的另一种选择;

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

命令模式:将请求封装成对象,这可以让你使用不同的请求,队列,或者认证请求来参数化其他对象,命令模式也可以支持撤销操作;

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

外观模式:提供一个统一接口,用来发放完子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用;

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

迭代器模式:提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示;

组合模式:允许你将对象组成树形结构表现整体或部分的层次结构,组合能让客户以一致的方式处理个别对象和对象组合;

状态模式:允许对象在内部状态改变时改变它的方法,对象看起来好像修改了它的类;

代理模式:为另一个对象提供一个替身或占位符以访问这个对象;

复合模式:复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题;

 

 

区别

工厂方法与抽象工厂的区别;都是负责创建对象,但是工厂方式使用的是继承,抽象工厂是通过对象的组合;

装饰者模式与适配器模式的差异:装饰者扩展对象的行为和责任,适配器负责转换;

模板方法与策略的差异:

状态模式和策略模式的差异:

代理模式和装饰者模式的意图:

 

 

模式意图:
装饰者不改变接口但添加责任,当某个状态改变时允许一群对象能被通知到;

适配器将一个接口转成另一个接口、改变一个或多个接口

外观让接口更简单、简化一群类的接口;

模板方法子类决定如何实现算法中的步骤

策略封装可互换的行为,然后使用委托来决定要采用哪一个行为

工厂方法有子类决定实例化哪个具体类;

组合模式客户可以将对象的集合以及个别的对象一视同仁

迭代器模式提供一个方法来遍历集合,而无须暴露集合的实现;

状态模式封装基于状态的行为,并将行为委托到当前状态;

代理包装另一个对象并控制对它的访问;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丵鹰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值