策略模式

来源:互联网 发布:office for 破解mac 编辑:程序博客网 时间:2024/05/15 09:52

人物:张三,丈母娘

故事:张三这天去找老丈母娘摊牌,早就料到老丈母娘死活不同意,直接准会好三个策略应对,最后一个为中级策略!!!

要点:各策略要继承同一接口,需要一个额外类承载接口以便转换形态

1.策略接口

package org.senssic.startegy;public interface Startegy {public void justDo();}

2.三种策略实现类

package org.senssic.startegy;public class DoGetCar implements Startegy {@Overridepublic void justDo() {// TODO Auto-generated method stubSystem.out.println("拿出一个闪闪发光的小汽车");}}

package org.senssic.startegy;public class DoGetHourse implements Startegy {@Overridepublic void justDo() {// TODO Auto-generated method stubSystem.out.println("拿出一个大房子");}}
package org.senssic.startegy;public class DoXXOO implements Startegy {@Overridepublic void justDo() {System.out.println("生米已经煮成熟饭,我已经和你女儿xxoo啦  小外孙都有啦,哈哈哈");}}

3.把策略全部都放在身后,等会好直接拿出来对应

package org.senssic.startegy;public class JuseDo {private Startegy startegy;public JuseDo(Startegy startegy) {this.startegy = startegy;}public void justDo() {this.startegy.justDo();}}
4.老丈母娘发难啦

package org.senssic.startegy;public class ZhangSan {public static void main(String[] args) {System.out.println("张三到丈母娘家里去说:'我要娶你女儿!!!" + "--->丈母娘说没车你凭啥娶'");// 张三直接从背后拿出来一个玩具车说”搁这里“JuseDo juseDo = new JuseDo(new DoGetCar());juseDo.justDo();System.out.println("丈母娘说没车你没房子'");// 张三拿出一个画好的房子juseDo = new JuseDo(new DoGetHourse());juseDo.justDo();System.out.println("丈母娘说没车你太丑,癞蛤蟆别吃天鹅肉啦'");// 张三狂笑不已juseDo = new JuseDo(new DoXXOO());juseDo.justDo();}}

终于还是赢取了白富美,想想心里还有些小激动呢


0 0
原创粉丝点击