读Head First设计模式小结

设计原则:

1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起

2.针对接口编程,而不是针对实现编程

3.多用组合,少用继承

4.为交互对象之间松耦合设计而努力

5.类应该对扩张开放,对修改关闭

6.要依赖于抽象类,不要依赖于具体类

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

8.好莱坞原则:别调用我们,我们会调用你

9.一个类应该只有一个引起变化的原因

 

设计模式:

1.策略模式:

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

 

2.观察者模式:

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

 

3.装饰者模式:

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

 

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

简单工厂模式用来封装对象的创建。

简单工厂和工厂方法模式之间的区别:简单工厂把全部的事情在一个地方都处理完了,然而工厂方法却是创建一个框架,让子类决定要如何实现。

 

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

 

6.单件模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。

 

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

 

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

对象适配器和类适配器使用两种不同的适配方法(分别是组合与继承)。

 

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

 

三个模式的目的:

装饰者模式:不改变接口,但加入责任

适配器模式:讲一个接口转换成另一个接口

外观模式:让接口更简单

 

10.模板方法模式:

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

模板就是一个方法,具体地说,这个方法将算法定义一组步骤,其中的任何步骤都可以是抽象的,由子类实现。这可以确保算法的结构保持不变,同时由子类提供部分实现。

比较一下三个模式的区别:

模板方法:封装可互换的行为,然后使用委托来决定要采用哪一个行为。

策略:子类决定如何实现算法中的 步骤

工厂方法:由子类决定实例化哪个具体类

 

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

 

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

几种模式的比较:

策略模式:封装可互换的行为,并使用委托决定使用哪一个

适配器模式:改变一个或多个接口

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

外观:简化一群类的接口

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

观察者:当某个状态改变时,允许一群对象能被通知到

 

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

区别以下几个模式:

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

策略模式:将可以互换的行为封装起来,然后使用委托的方法,决定使用哪一个行为。

模板模式:由子类决定如何实现算法中的某些步骤。

 

14.代理模式:代理模式为另一个对象提供一个替代或占位符以控制对这个对象的访问。

区分以下模式:

装饰者:  包装另一个对象,并提供额外的行为

外观:       包装许多对象以简化他们的接口

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

适配器:  包装领一个对象,并提供不同的接口

 

 

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

MVC是复合模式,结合了观察者,策略模式和组合模式。

 

总结:

装饰者:包装一个对象,以提供新的行为

状态:封装了基于状态的行为,并使用委托在行为之间切换

迭代器:在对象的集合之中游走,而不暴露集合的实现

外观:简化一群类的接口

策略:封装可以互换的行为,并使用委托来决定要使用哪一个

代理:包装对象,以控制对此对象的访问

工厂方法:由子类决定要创建的具体类是哪一个

适配器:封装对象,并提供不同的接口

观察者:让对象能够在状态改变时被通知

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

组合:客户用一致的方法处理的对象集合和单个对象

单件:确保有且只有一个对象被创建

抽象工厂:允许客户创建对象的家族,而无需指定他们的具体类

命令:封装请求成为对象

 

 

16.桥接:使用桥接不知改变你的实现,也改变你的抽象

17.生成器:使用生成器模式封装一个产品的构造过程,并允许按步骤构造

18.责任链:当你想要一个以上的对象有机会能够处理某个请求的时候,就使用责任链模式

19蝇量:如果想让某个类的一个实例能用来提供许多虚拟实例,就使用蝇量模式

20.解释器:使用解释器模式为语言创建解释器

21.中介者:使用中介者模式来集中相关对象之间复杂的沟通和控制方法

22.备忘录:当你需要让对象返回之前的状态时,就使用备忘录模式

23.原型:当创建给定类的实例的过程很昂贵或很复杂时,就使用原型模式

24.访问者:当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Head First设计模式》是一本设计模式学习的畅销书籍。这本书的作者以幽默风格和易于理解的语言,引导者深入了解面向对象设计的基础知识和常见设计模式的应用。 《Head First设计模式》首先介绍了面向对象设计原则,如开闭原则、依赖倒置原则和单一职责原则等。它强调了设计模式的重要性,这些模式是在常见的软件开发场景中提供解决方案的经验总结。 接着,书中详细介绍了23个经典的设计模式,分为创建型模式、结构型模式和行为型模式三个大类。每个模式都通过生动的例子和图表进行解释,使者能够更好地理解其应用场景和使用方法。同时,还提供了一些实际案例,帮助者将学到的知识应用到实际项目中。 《Head First设计模式》以问题驱动的方式进行讲解,通过解决具体的问题来引导者理解模式的思想和用法。这种方式使得学习变得更加有趣和互动,者可以通过参与问题的解决过程来更好地理解模式的实际应用。 总的来说,这本书是一本通俗易懂的设计模式入门教材。它以轻松幽默的方式向者介绍了设计模式的基本概念和常见应用。者通过阅这本书,能够对设计模式有一个清晰的理解,并能够在实际项目中灵活运用。无论是初学者还是有一定经验的开发者,都能从中收获实用的知识和提升自己的设计能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值