策略模式(Strategy Pattern)
定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
可怕的问题
对代码所做的局部修改,影响层面可不是局部(会飞的橡皮鸭)
怎么办?
采用良好的OO软件设计原则。
设计原则(第一个设计原则)
找出应用中可能需要变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起。
换句话说,如果每次新的需求一来,都会使某方面的代码发生变化,那么可以确定这部分代码需要抽取出来。——代码变化引起的不经意后果变少,系统变得更有弹性。
设计原则
针对接口编程,而不是针对实现编程
针对实现编程:
// 声明变量d为Dog类型(是Animal的具体实现),会造成我们必须针对具体实现编码
Dog d = new Dog();
d.bark();
针对接口/超类编程:
// 知道对象时狗,但是利用animal进行多态的调用
Animal animal = new Dog()
Animal.makeSound();
更棒的是,子类实例化的动作不再需要在代码中硬编码,例如:new Dog(),而是“在运行时才指定具体实现的对象”。
// 我们不知道实际的子类型是“什么”….我们只关心它如何正确地进行makeSound()的动作就可以了。
a = getAnimal();
a.makeSound();
设计原则
多用组合,少用继承。
设计模式让你和其他开发人员之间有共享的词汇,一旦懂得这些词汇,和其他开发人员之间沟通就很容易,也会促使哪些不懂的程序员想开始学习设计模式。设计模式也可以把你的思考架构的层次提高到模式层面,而不是仅停留在琐碎的对象上。
设计模式不会直接进入你的代码中,而是先进入进的“大脑”中,一旦你现在脑海中装入许多关于模式的知识,就能够开始在新设计中采用它们,并当你的旧代码变得如同搅和一团没有弹性的时候,可以用他们重构代码。
知道抽象、继承、多态这些概念,并不会马上变成好的面向对象设计者。设计大师关心的是建立弹性的设计,可以维护,可以应付变化。
相关推荐
经典的设计模式书籍打包:Head First 设计模式 +Java设计模式(第2版)
笔记_HeadFirst设计模式
Head First设计模式(完整高清版).pdf,涵盖了各种宝贵的设计思想!
又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ······ 你不想重新发明车轮(或者更差的是,没有充气车胎的轮子),所以你从设计模式中寻求...
Head First设计模式, 中国电力出版社出版,英文书名:Head First Design Patterns。作者:弗里曼。《Head First设计模式》荣获2005年第十五届Jolt通用类图书震撼大奖。英文影印版被《程序员》等机构评选为2006年受...
Head First 设计模式Head First 设计模式Head First 设计模式Head First 设计模式Head First 设计模式Head First 设计模式Head First 设计模式Head First 设计模式Head First 设计模式Head First 设计模式Head First...
head first 设计模式 策略模式 C++ 代码
[中文]Head-First设计模式.pdf.
如果你曾经读过任何一本深入浅出(Head First)系列书籍,你就会知道能够从本书中得到的是:透过丰富的视觉效果让你的大脑充分地运作。本书的编写运用许多最新的研究,包括神经生物学、认知科学以及学习理论,这使得...
Head First设计模式中文版 Head First设计模式中文版 Head First设计模式中文版
head first 设计模式 高清中文版 pdf
head first设计模式 下载地址 head first设计模式 下载地址 head first设计模式 下载地址 head first设计模式 下载地址 head first设计模式 下载地址
《O'Reilly:Head First设计模式(中文版)》趋近完美,因为它在提供专业知识的同时,仍然具有相当高的可读性。 本书共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。
宣传一下群:Head First设计模式■ QQ群号:23998319 Head First设计模式 一书 每一个设计模式的举例及UML图! 值不值得就看各位对HF这本书的认同了,, 里面我使用visual paradigm site 3.4版 进行举例化的 ...
Head First设计模式 Head First设计模式 Head First设计模式
Head First 设计模式(高清中文完整版带目录)+附书源码+HeadFirst设计模式学习伴侣.rar 又名: Head First Design Patterns 作者: (美)弗里曼(Freeman,E.) 副标题: Head First Design Patterns 简介 ·····...
Head First设计模式高清非扫描中文版.zip.002。一共三个压缩包,都上传了
支持开源! 这么经典的书,不必介绍了吧。 注意:由于分包压缩的7z格式,所以需要把15个包全部下载后在进行解压缩(使用7z软件)
《Head First Java》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会...
重视大脑的学习指南Head First设计模式,学习为何朋友们对工厂模式的认知可能有错,把事关紧要的模式直接装入脑海里,发掘模式大师的秘密,避免一些尴尬的错误,探究星巴兹咖啡如何以装饰者模式让自己的股价翻倍。