码迷,mamicode.com
首页 > 编程语言 > 详细

Java 设计模式学习笔记1——策略模式(Duck例子)

时间:2017-07-26 00:07:41      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:对象   动作   独立   splay   9.png   功能   不容易   lock   png   

技术分享

0、假设现有工程(Duck)中遇到为类添加功能的问题,如何设计类添加新的功能?

1、利用继承提供的Duck(鸭子)的行为会导致哪些缺点?

(1)代码在多个子类中重复

(2)很多男知道所有鸭子的全部行为

(3)运行时的行为不容易改变

(4)改变会牵一发动全身,造成其他鸭子的不想要的改变

【设计原则】

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

2、分开变化与不会变化的部分

将Duck分成两部分,鸭子类和鸭子行为。

类的固有属性和共用的方法写在类中,行为另起一个类(这里说的类也可能是接口)

3、设计行为

鸭子类实现类中实现设计接口的方法,这样就可以在运行时动态第加载行为方法。

【设计原则】

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

“针对接口编程”,关键就是利用多态编程。通过多态编程,子类实例化的动作不在需要在代码中硬编码,而是在运行时才指定具体的思想对象。

4、整合鸭子行为

技术分享

技术分享

技术分享

5、封装行为大局观,如下图:

技术分享

【设计原则】

多用组合,少用继承。

Java 设计模式学习笔记1——策略模式(Duck例子)

标签:对象   动作   独立   splay   9.png   功能   不容易   lock   png   

原文地址:http://www.cnblogs.com/ouyxy/p/7236999.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!