设计模式(head first)总结

设计模式复习总结
OO设计原则: 1、针对接口编程,不是针对实现编程;
2、把不变化的封装起来;
3、多用组合,少用继承;
4、类对扩展开放,对修改关闭;
5、为对象之间的松耦合设计而努力;
6、依赖抽象,不要依赖具体的类;
7、最少知识原则:只和你的朋友谈;
8、别找我,我会找你(超类主控一切);

9、类应该只有一个改变的理由;

要点:可复用性、可维护性、可扩充性;设计模式是解决设计问题的通用方法,换言之就是解决问题的途径。


策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
观察者模式:在对象之间定义一对多的依赖,这样一来,当一个对象状态改变时,一来它的对象都回收到通知,并产生相应的操作。(ps:Java内置的Listen就是此模式)
装饰者模式:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。(ps:Java的IO流就是此模式)
工厂方法模式:定义了一个创建相关或依赖对象的家族,而不需要明确的制定具体类。(ps:工厂方法使用继承,允许将实例化延迟到子类)
抽象工厂模式:提供一个接口,用于创建相关或依赖对象的“家族”,而不需要明确的制定具体类。(ps:抽象工厂模式使用对象的组合,创建相关的对象家族不需要依赖它们的具体类)
单件模式:确保一个类只有一个实例,并提供全局的访问点。(Java中使用私有的静态构造方法,使用多线程时注意线程同步问题)
命令模式:将请求封装成对象,这可以让你使用不同的请求、队列,伙这日志请求来参数化其他对象。命令模式也可以支持撤销操作。(命令模式将发出请求的对象和执行请求的对象解耦,也可以用于实现日志和事务系统)
适配器模式:将一个类的接口,装换成客户希望另一个接口。适配器让原本不兼容的类可以合作无间。(必须有接口,有类适配器和对象适配器,其中类适配器要用到多重继承)
外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。(注意和装饰者模式的区别:外观模式是包装一群接口来简化接口,装饰者模式是包装对象来增加行为)
模版方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。(钩子是方法,策略模式用组合,模版方法用继承)
迭代器模式:提供一种方法顺序的访问一个聚合对象中的各个元素,而又不暴露其内部表示。(依赖聚合提供便利,迭代器是一个接口)
组合模式:允许你将对象组成树形结构来表示“整体/部分”的层次结构。组合能让客户以一致的方式处理个别对象和对象组合。(让一个类只分配一个责任)
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像是修改了类。(只允许一个对象拥有可变的状态,策略模式是用行为或算法来配置类,状态模式是允许类跟着状态的改变而改变行为)
代理模式:为一个对象提供一个替身或者占位符以访问这个对象。(代理有控制和管理访问的功能,并且分为多种代理,比如动态代理、远程代理等)
桥接模式:不只改变你的实现,也改变你的抽象。(实现和抽象放在两个不同的类层次中而使它们可以独立访问)
生成器模式:封装一个产品的构造过程,并允许按步骤构造;
责任链模式:一个以上的对象要处理同一个请求的时候。
蝇量模式:让一个实例能用来提供许多“虚拟实例”。
解释器模式:为语言创建解释器。(语法规则)
中介者模式:集中相关对象之间复杂的沟通和控制方式。(简化系统维护)
备忘录模式:让对象返回之前的状态。(备忘录放在外面,维护内聚,Java考虑使用序列化机制存储系统状态)
原型模式:创建给定类的实例过程很昂贵或很复杂,使用此模式。(允许使用克隆即复制来创建实例,想客户隐藏创建实例的复杂性)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Head First 设计模式(高清中文完整版带目录)+附书源码+HeadFirst设计模式学习伴侣.rar 又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ······   你不想重新发明车轮(或者更差的是,没有充气车胎的轮子),所以你从设计模式中寻求帮助—— 设计模式是过去人们面对同样的软件设计问题所得到的经验。 有了设计模式,就可以利用其他人的实践经验的精华, 因此省下的时间可以用在其他的事情上,如:更有挑战性的事情、更复杂的事情以及更有趣的事情。你想要学习:    ·重要的模式 ;    ·何时使用某个模式,为何使用该模式;    ·如何在你自己的设计中马上采用这些模式;    ·何时不该使用该模式(如何避免滥用模式);    ·某个模式是依据哪些面向对象设计原理而设计出来的。    更重要的是,你想在学习设计模式的过程中,不感觉到昏昏欲睡。如果你曾经读过任何一本深入浅出(Head First)系列书籍, 你就会知道能够从本书中得到的是:透过丰富的视觉效果让你的大脑充分地运作。本书的编写运用许多最新的研究,包括神经生物学、认知科学以及学习理论, 这使得这本书能够将这些设计模式深深地烙印在你的脑海中,不容易被遗忘。你将会更擅长于解决软件设计中的问题, 并能够和你的团队成员用模式的语言来更好地沟通。 作者简介 ······   Eric Freeman以及Elisabeth Freeman是作家、教育家以及技术发明者。 他们在迪斯尼公司领导了四年的数字媒体以及因特网的开发,后来他们将这些经验应用在他们自己的媒体中, 包括这本书中。Eric具有耶鲁大学的计算机科学博士学位,Elisbeth具有耶鲁大学的计算机科学硕士学位。    Kathy Sierra(javaranch.com的创始者)以及Bert Bates是畅销的“深入浅出”(Head First)系列书籍的策划者, 也是Sun公司Java开发员认证考试的开发者。
Head First设计模式》是一本设计模式学习的畅销书籍。这本书的作者以幽默风格和易于理解的语言,引导读者深入了解面向对象设计的基础知识和常见设计模式的应用。 《Head First设计模式》首先介绍了面向对象设计原则,如开闭原则、依赖倒置原则和单一职责原则等。它强调了设计模式的重要性,这些模式是在常见的软件开发场景中提供解决方案的经验总结。 接着,书中详细介绍了23个经典的设计模式,分为创建型模式、结构型模式和行为型模式三个大类。每个模式都通过生动的例子和图表进行解释,使读者能够更好地理解其应用场景和使用方法。同时,还提供了一些实际案例,帮助读者将学到的知识应用到实际项目中。 《Head First设计模式》以问题驱动的方式进行讲解,通过解决具体的问题来引导读者理解模式的思想和用法。这种方式使得学习变得更加有趣和互动,读者可以通过参与问题的解决过程来更好地理解模式的实际应用。 总的来说,这本书是一本通俗易懂的设计模式入门教材。它以轻松幽默的方式向读者介绍了设计模式的基本概念和常见应用。读者通过阅读这本书,能够对设计模式有一个清晰的理解,并能够在实际项目中灵活运用。无论是初学者还是有一定经验的开发者,都能从中收获实用的知识和提升自己的设计能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值