设计模式是告诉我们如何组织类和对象以解决某种问题。

学习设计模式,也就是学习其他开发人员的经验与智慧,解决遇到的相同的问题。

使用模式的最好方式是:把模式装进脑子,然后在设计的时候,寻找何处可以使用它们。函数,方法是代码的复用,模式是经验的复用。

继承:超类的改变是会影响所有子类的,有时候让所有的子类都具有超类的行为是不恰当的,所以继承并不总是能很好的解决问题。

接口:java的接口是不具有实现代码的,所以继承接口是无法达到代码复用的

修改软件时,寻求用一种对既有代码影响最小的方式来修改软件,是我们的想要的需求。

设计原则一:找出应用中可能需要变化之处,把他们抽取出来并“封装”,不和那些不需要变化的代码混在一起。这样代码变化引起的不经意后果变少,系统将变得更有弹性。

这个简单是原则几乎是以后每个设计模式背后的精神所在----“系统中的某部分变化不会影响其他部分”

设计原则二:针对接口编程,而不是针对实现编程。即利用多态,程序针对超类型编程。实例的行为将在运行时动态的设定。

设计原则三:多用组合,少用继承。两个类的组合,能获得适当的组合行为,同时系统也具有很大的弹性。

学完以上三个原则,获得第一个设计模式:策略模式(定义了算法族,分别封装起来,让他们直接可以互相替换,此模式让算法的变化独立于使用算法的客户)。

建立可维护的OO系统,要诀在于随时想到系统以后可能需要的变化以及应付变化的原则。

最新文章

  1. RDIFramework.NET V2.8版本 ━ 开发实例之产品管理(WinForm)
  2. Android 内存溢出解决方案(OOM) 整理总结
  3. 在IOS中 NSRange类详解
  4. react ie10下报错
  5. lucene 抛出的异常(分享)
  6. REST简介及设计原则
  7. windows cmd命令行下创建文件和文件夹
  8. 饥饿的牛(hunger)
  9. 201521123054 《Java程序设计》第5周学习总结
  10. 【UML】NO.55.EBook.8.UML.3.001-【UML和模式应用 第3版】
  11. 高通 sensor 从native到HAL
  12. 八、启动linux内核并修改开机logo
  13. 字符常量 java
  14. drools研究后记
  15. ReentrantLock锁的释放
  16. bintray 在android3.2上传遇到的问题
  17. Java实例 Part5:面向对象入门
  18. C# http Get/POST请求封装类
  19. 传智播客Springmvc_mybatis学习笔记
  20. 【转】android的编译和运行过程深入分析

热门文章

  1. C# 求Π Π/4=1-1/3+1/5-1/7+......+1/(2*n-3)-1/(2*n-1); (n=2000)
  2. PHP Windows下使用Memcached扩展
  3. 存储路径与文件目录操作ZT
  4. js循环和调用
  5. Flask框架实现给视图函数增加装饰器操作示例
  6. 找不到 cucumber.api.cli.Main 的报错解决方案
  7. SpringBoot系列:Spring Boot异步调用@Async
  8. java 项目时间和服务器时间不一致
  9. python中@property装饰器的使用
  10. python-nmap使用及案例