java设计模式——工厂模式
2016-03-07 16:12
429 查看
工厂 顾名思义 制造东西的地方,而我们的工厂模式也是用来创建对象的。定义一个创建对象的接口,让子其类来决定创建那个对象。工厂模式的现实中的使用,一般是当我们有很多相似的需求的时候,通过抽象公共部分来实现高效的编码。
/*** 作者:chs on 2016/3/7 14:12* 邮箱:657083984@qq.com* 抽象的工厂*/public interface Factory {/*** 根据材料来创建产品* @param material*/public abstract Product createProtect(String material);}
package com.chs.myfactory;/*** 作者:chs on 2016/3/7 14:34* 邮箱:657083984@qq.com* 产品*/public abstract class Product {protected String name;}
package com.chs.myfactory;/*** 作者:chs on 2016/3/7 15:26* 邮箱:657083984@qq.com*/public class Product1 extends Product {private String name;public Product1() {this.name = "我是第一种产品";}}
package com.chs.myfactory;/*** 作者:chs on 2016/3/7 15:26* 邮箱:657083984@qq.com*/public class Product2 extends Product {private String name;public Product2() {this.name = "我是第二种产品";}}根据传入值来确定创建哪个子类的对象。
package com.chs.myfactory;/*** 作者:chs on 2016/3/7 15:19* 邮箱:657083984@qq.com*/public class MyFactory implements Factory {private static MyFactory instance;private MyFactory(){}public static MyFactory getInstance(){if(instance==null){synchronized (MyFactory.class){if(instance==null){return new MyFactory();}}}return instance;}@Overridepublic Product createProtect(String material) {Product product = null;if(material.equals("1")){product = new Product1();}else {product = new Product2();}return product;}}
MyFactory.getInstance().createProtect("1");
相关文章推荐
- MyEclipse如何从svn上下载项目
- [Java] web输入框默认值处理
- Java实现的死锁示例
- Java类与对象的一些想法
- java 重写(Override)与重载(Overload)浅谈
- jdbc中next()的使用
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- leetcode:Minimum Depth of Binary Tree 【Java】
- java基本算法排序
- java字符串加密解密
- java 使用Reader和Writer对文件内容的拷贝
- JAVA_OPTS参数说明与配置
- JAVA字符串类型-String.format()函数用法
- java内存模型
- 【java小工具】从.java文件中筛选出方法,并计算出方法在这些文件中出现的次数
- 【集合框架】JDK1.8源码分析之HashMap & LinkedHashMap迭代器(三)
- leetcode:Maximum Depth of Binary Tree 【Java】
- 查看Eclipse版本号,及各个版本区别
- Spring MVC之@RequestBody, @ResponseBody 详解
- [springmvc]返回ModelAndView,视图解析不到jsp,而是去解析“'请求路径'+ ‘.jsp’”