HeadFirsh 第一章

软件开发的一个不变真理:变化

不管当初软件设计得多好,一段时间之后,总是需要成长与改变,否则软件就会”死亡“

设计原则1

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

把会变化的部分取出并封装起来,好让其他部分不会受到影响。结果如何?代码变化引起的不经意后果变少,系统变得更有弹性!

设计原则2

  • 针对接口编程,而不是针对实现编程。

针对接口编程真正的意思是”针对超类型编程“,更可以明确的说成”变量的声明类型应该是超类型,通常是一个抽象类或者是一个接口,如此只要是具体实现此超类型的类所产生的对象,都可以指定给这个变量。这也意味着,声明类时不用理会以后执行时的真正对象类型!”

设计原则3

  • 优先使用组合而不是继承

使用组合创建系统给了你更大的弹性。不仅是让你把一个算法家族封装进他们自己的一组类,而且让你在运行时改变行为,只要组合的对象实现正确的行为接口。

image.png

策略模式

定义了一个算法族,分别封装起来,是的他们之间可以相互转换。策略让算法的变法独立于使用它的客户

你可能感兴趣的:(HeadFirsh 第一章)