策略模式
来源:互联网 发布:彗星dns优化 编辑:程序博客网 时间:2024/05/16 14:13
java中的类只能实现单继承(即一个孩子只能有一个亲生父亲,但一个父亲可以有多个儿子),类的继承可以提高代码的复用性,但子类实现的方法若和从父类中继承的方法不一致,则需重写,不同的类越多,则需要重写的父类方法就越多,这样就会导致代码的可复用性降低。策略模式可以很好的解决这一问题,将超类与子类中共同拥有的方法放入抽象类,不同的方法做成接口+实现例:package cn.test;
/*
* 策略模式,应对项目的扩展性,降低复杂度:
1)分析项目变化与不变部分,提取变化部分,抽象成接口+实现;
2)鸭子哪些功能是会根据新需求变化的?叫声、飞行…
*/
//变化部分
interface FlyBehavior {
void fly();
}
interface QuackBehavior{
void quack();
}
package cn.test;
//Duck为父类
public abstract class Duck {
FlyBehavior mFlyBehavior;
QuackBehavior mQuackBehavior;
public Duck() {
}
public void dFly(){
mFlyBehavior.fly();
}
public void dQuack(){
mQuackBehavior.quack();
}
public abstract void disPlay();
}
//子类1
public class BlueDuck extends Duck{
public BlueDuck() {
mFlyBehavior=new BadFly();
mQuackBehavior=new BadQuack();
}
@Overridepublic void disPlay() { System.out.println("BuleHead");}
}
//子类2
package cn.test;
public class RedDuck extends Duck{
public RedDuck() { mFlyBehavior=new GoodFly(); mQuackBehavior=new GoodQuack();}@Overridepublic void disPlay() { System.out.println("RedHead");}
}
0 0
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- 策略模式
- poj3258River Hopscotch
- HDU 3366 Passage
- c++实现图像旋转任意角度
- POJ 1083 Moving Tables
- CodeIgniter框架源码笔记(9)——日志记录类Log.php
- 策略模式
- nyoj 17 单调递增最长子序列
- Android textview实现局部点击
- Js基础学习之-- 利用GET方法实现ajax请求
- POJ 2503 Babelfish(STL-map)
- 学习Android源码应该避免的
- 已知两种遍历序列求原始二叉树
- 关于参加学科竞赛的心得感想
- 动画