java策略模式 工厂模式_java笔记--策略模式和简单工厂模式

策略模式:

为什么使用:

策略模式主要用于有很多不同的方式来解决同一个问题的情景。

如:文件的保存:可保存成txt,也可保存成xml。

另外压缩文件、商场的促销策略等是类似的

如何使用:

需要定义一个接口或者抽象类来表示各种策略的抽象,

由于在选择适当的策略上有些不方便,需要不断地判断需要的类型,

因此需要用简单工厂方法来实现判断过程

例子:

用策略模式实现图片格式的存储

1.建立一个公共接口用来保存图片格式

public interface ImagineSave {

/**

* 图片存储格式

*/

public void save();

}

2.根据图片现有格式分别建立每一种格式的接口实现类

/**

* 策略类一:图片格式GIF

*

* @author XIEHEJUN

*

*/

public class GIFSave implements ImagineSave {

@Override

public void save() {

System.out.println("存储格式为GIF");

}

}

/**

* 策略类二:图片格式JPEG

*

* @author XIEHEJUN

*

*/

public class JPEGSave implements ImagineSave {

@Override

public void save() {

System.out.println("将图片保存为JPEG格式。");

}

}

/**

* 策略类三:图片格式PEN

*

* @author XIEHEJUN

*

*/

public class PENSave implements ImagineSave{

@Override

public void save() {

System.out.println("将图片保存为PEN格式。");

}

}

3.建立一个简单工厂类,实现格式判断过程

/**

* 建立简单工厂类

*

* @author XIEHEJUN

*

*/

public class TypeFactotry {

public static ImagineSave getSaver(String type) {

if (type.equalsIgnoreCase("GIF")) {

return new GIFSave();

} else if (type.equalsIgnoreCase("JPEG")) {

return new JPEGSave();

} else if (type.equalsIgnoreCase("PEN")) {

return new PENSave();

} else {

return null;

}

}

}

4.main函数

public static void main(String[] args) {

// TODO Auto-generated method stub

ImagineSave save = TypeFactotry.getSaver("JPEG");

save.save();

save = TypeFactotry.getSaver("GIF");

save.save();

save = TypeFactotry.getSaver("PEN");

save.save();

save = TypeFactotry.getSaver("GIF");

save.save();

}

原文:http://www.cnblogs.com/XHJT/p/3884781.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值