今天理解的策略模式,也是第一次尝试公开博客.第一篇.
作为不会卖萌的码农.我能说案例中冰淇淋的名字都是百度的嘛.2333
谈一下今天的这个例子.
(这里tag一下.欠一张uml图.求不会被专业课老师打死)
这个例子整体的结构说一下.这里我就不大量粘贴代码了.因为可能会比较乱(追求一种清爽的不得鸟的感觉)写一下伪代码吧.
伪代码定义:
公共的 接口 iceBox[名字]{
抽象方法 获得冰箱冰激凌();
}
//咳咳,接口方法是没有方法的体的哦.接口方法还是抽象的哦.顺便提一下.
代码如下:
public interface iceBox {
//设置一个冰箱接口
public void get_box_ice();
}
下面出来三个主角Jack、Lucy、Tom.因为口味不同所以他们喜欢吃不同口味的冰淇淋.代码如下:
创建三个类实现icebox.//这里为了让文章整体清爽我就写一个类
public class Lucy implements iceBox{ //[Jack][Tom]这里换一下类名再创建两个
public void get_box_ice() {
System.out.println("已经获取巧乐兹");
}
}
好了.这时候写我们板凳类(:为什么板凳类.因为他们都需要通过板凳去拿取自己喜欢的冰淇淋.代码如下
//这里值得好好理解下;
public class Stool {
private iceBox iceBox; //私有化接口
public Stool(com.it.pcc.stategyPattern.iceBox iceBox) {
this.iceBox = iceBox;
}
public void get_box_ice(){
this.iceBox.get_box_ice();
}
}
下面我们创建一下测试类.
public class main_text {
public static void main(String[] args) {
Stool stool;
System.out.print("搬着小板凳.Lucy最爱吃的巧乐兹");
stool=new Stool(new Lucy());
stool.get_box_ice();
System.out.println("搬着小板凳.Jack最爱吃品脱"); //不要问我是什么...百度的!!!
stool=new Stool(new Jack());
stool.get_box_ice();
System.out.println("搬着小板凳.Tom最爱吃鲜果烈焰");
stool=new Stool(new Tom());
stool.get_box_ice();
System.out.println("策略模式的好处就是:体现了高内聚低耦合的特性");
System.out.println("易扩展、易理解、易切换");
}
}
第一篇文章有些仓促.尤其是板凳类在策略模式的用途、还有测试类的.应该还是比较清爽的.如果对于代码有不太理解的.可以留言交流.如果还是更好的想法或建议欢迎留言.
--在学习的路上,难免有理解不全.欢迎批评.