设计模式之工厂模式和策略模式
来源:互联网 发布:乐视视频下载mac 编辑:程序博客网 时间:2024/06/10 20:05
工厂模式的使用场景是为了统一管理对象的实例化,当对象改变的时候不需要改动太大代码量就能增加或修改,以便代码的维护。
首先有一个Car的接口
public interface Car{ public void run();}
接下来宝马和奔驰分别实现了该接口
</pre>public class BMW implements Car{<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void run() {<span style="white-space:pre"></span>System.out.println("宝马在飞驰");<span style="white-space:pre"></span>}}<pre name="code" class="java">
</pre>public class Benz implements Car{<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void run() {<span style="white-space:pre"></span>System.out.println("奔驰在飞驰");<span style="white-space:pre"></span>}}<pre name="code" class="java">
汽车工厂:
public class CarFactory {
public Car createCar(String car){
if("BMW".equals(car)){
return new BMW();
}else{
return new Benz();
}
}
}
简单工厂模式就是在工厂里面生产用户需要的对象,不需要用户实例化,对象由工厂维护。
贴一下在写的代码里的应用:
import java.util.List;
import com.toone.xmdj.util.validator.ValidatorResultMessge;
public class ValidatorTypeContext {
private ValidatorTypeAbstract val = null;
public ValidatorTypeContext(String str,Object obj){
if("Map".equals(str)){
ValidatorTypeWithMapUtil cs = new ValidatorTypeWithMapUtil(obj);
val=cs;
}else if("Entity".equals(str)){
ValidatorTypeWithEntityUtil cs = new ValidatorTypeWithEntityUtil(obj);
val=cs;
System.out.println();
}
}
public ValidatorResultMessge selectValidatorTypeMap(Object obj,List<String> checkList) throws Exception{
ValidatorResultMessge result = new ValidatorResultMessge();
if("checkNotNull".equals(obj)){
result = val.checkNotNull(checkList);
}else if("checkIsNumber".equals(obj)){
result = val.checkIsNumber(checkList);
}else if("checkIsMobile".equals(obj)){
result = val.checkIsMobile(checkList);
}
return result;
}
}
我的代码里是通过Context构造方法实例化ValidatorTypeAbstract 对象,并在selectValidatorTypeMap使用这个实例化的对象。同时我这里也采用了策略模式,ValidatorTypeAbstract 作为抽象的策略类,ValidatorTypeWithMapUtil 和ValidatorTypeWithEntityUtil 分别是实现策略类的具体策略。通过Context(环境类)对策略类进行实例化,并使用相应的方法。
- 设计模式学习之简单工厂模式和策略模式
- 设计模式之简单工厂模式和策略模式总结
- 设计模式之工厂模式和策略模式
- 大话设计模式学习之工厂模式和策略模式
- 大话设计模式之策略模式和工厂模式相结合
- java设计模式之策略模式和简单工厂模式
- 设计模式之简单工厂模式,工厂模式,策略模式
- 设计模式之策略模式&简单工厂模式
- c++ 设计模式之 策略模式与工厂模式结合
- 浅谈设计模式之简单工厂模式与策略模式
- 大话设计模式之工厂模式与策略模式
- 《大话设计模式》之 简单工厂模式和策略模式的区别和相同之处
- 设计模式------------将工厂模式和策略模式结合起来
- 设计模式-简单工厂模式和策略模式
- 设计模式学习之策略模式和简单工厂模式的区别和联系
- 设计模式学习之策略模式和简单工厂模式的区别和联系
- 大话设计模式--工厂模式、策略模式
- 设计模式--简单工厂模式 策略模式
- cocosCreator直播视频集合
- 去哪儿2017校园招聘笔试题——统计字符串中最先出现三次的字符
- JQuery easyui 搭建前端框架
- 使用SoapUI 测试Web Service
- Spring不支持依赖注入static静态变量
- 设计模式之工厂模式和策略模式
- 3dmax制作三维地形图
- AOP编程
- linux查看服务器资源的命令
- 6410上DS18B20驱动
- Java防止非法和重复表单提交的方法
- Bmob解决了后端逻辑重复开发和维护的问题 无需后端编程和租用服务器 让移动开发更简单
- python--文件操作
- Android 侧滑菜单DrawerLayout简单的使用_田少嵩