使用PHP策略模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP策略模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2457字,纯文字阅读大概需要4分钟。
内容图文
问题:
1.如果让我们定义一只鸭子类,有游泳和外貌两个方法。
2.当需求增加的时候,我们需要给鸭子类增加飞行和叫声的方法
3.不是所有的鸭子都会叫或者都会飞行,一般的鸭子会,塑料鸭不会飞只会叫,橡皮鸭不会飞也不会叫。
4.当需求又要改变的时候,我们新增加了一个青蛙类,青蛙会叫。
等等一系列当需求改变的时候,我们代码难以处理。这个时候我们可以考虑策略模式。
如果你使用策略模式,那么你的代码变得有弹性,代码如下
1.我们创建一个会飞的接口
public interface Fly { public void flyBehavior(); }
2.写你需要的类实现这个接口
public class FlyNoWay implements Fly{ @Override public void flyBehavior() { System.out.println("不会飞"); } }
public class FlyWithWings implements Fly{ @Override public void flyBehavior() { System.out.println("用翅膀飞"); } }
3.创建鸭子类
public abstract class Duck { //多态形式定义飞行 private Fly fly; //多态的形式定义叫声 private QuackBehavior quackBehavior; public void display(){ System.out.println("黄色的鸭子"); } public void swim(){ System.out.println("鸭子可以游泳"); } public void perforFly(){ fly.flyBehavior(); } public void perforQuack(){ quackBehavior.quack(); } public Fly getFly() { return fly; } public void setFly(Fly fly) { this.fly = fly; } public QuackBehavior getQuackBehavior() { return quackBehavior; } public void setQuackBehavior(QuackBehavior quackBehavior) { this.quackBehavior = quackBehavior; } }
4.子类继承父类,并且让子类变得有自己的特色
public class RubberDuck extends Duck{ public RubberDuck(){ //在创造这个子类的时候就确定了它具体的飞行和叫声方法 setFly(new FlyNoWay()); setQuackBehavior(new MuteQuack()); } @Override public void display() { System.out.println("白色的橡皮鸭"); } }
5.如果此时我们需要加入一个青蛙类,也有呱呱呱的叫声也是一样的写法,因为用策略模式让你的代码变得有弹性。
6.测试类
public class TestMain { public static void main(String[] args) { KeDaDuck keDaDuck = new KeDaDuck(); keDaDuck.display(); keDaDuck.perforFly(); keDaDuck.perforQuack(); PlasticDuck plasticDuck = new PlasticDuck(); plasticDuck.display(); plasticDuck.perforFly(); plasticDuck.perforQuack(); RubberDuck rubberDuck = new RubberDuck(); rubberDuck.display(); rubberDuck.perforFly(); rubberDuck.perforQuack(); Rana rana = new Rana(); rana.perforQuack(); } }
总结
1.多用组合,少用继承。 2.在项目开始前就策划好,让其代码变得有弹性,防止增加和改变需求。 3.把一样的放在本类里,把不一样的容易变的部分抽出去。最后在组合起来。
相关推荐:
PHP策略模式
实例分析PHP策略模式
以上就是使用PHP策略模式的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的使用PHP策略模式全部内容,希望文章能够帮你解决使用PHP策略模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。