首页 > 代码库 > 设计模式之二 工厂模式
设计模式之二 工厂模式
工厂模式的定义:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法决定一个类的实例化延迟到其子类。
类图如下:
通用的代码如下:
//抽象产品类public abstract class Product { // 产品通用的方法..... public void method1(){ } //抽象方法 public abstract void method2();}//--------------------------------------产品类------------------------------------------------//具体类 1public class ConcreteProduct1 extends Product { @Override public void method2() { // 处理具体产品1的方法 }}//具体产品类2public class ConcreteProduct2 extends Product { @Override public void method2() { //具体产品2的方法..... }}//-----------------------------------创建类------------------------------------------//抽象的创建类public abstract class Creator { //通过反射创建具体的产品类... public abstract <T extends Product> T createProduct(Class<T> c);}//具体的抽象类public class ConcreteCreator extends Creator { @Override public <T extends Product> T createProduct(Class<T> c) { //产品类.... Product product = null; if(product == null){ try { product = (Product) Class.forName(c.getName()).newInstance(); } catch (Exception e) { e.printStackTrace(); } } //返回..... return (T)product; }}//---------------------------------------------------------Client 类--------------------------------------------------------------------------public class Client { /** * @Title: main * @Description: 工厂类的Client * @param @param args 设定文件 * @return void 返回类型 * @throws */ public static void main(String[] args) { //工厂创建类 Creator creator = new ConcreteCreator(); //生成具体产品类1 Product product = creator.createProduct(ConcreteProduct1.class); //继续业务处理 }}
简单工厂类
把类图去掉抽象类 creator类,将ConcreteCreator 方法修改为静态即可。
设计模式之二 工厂模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。