专业编程基础技术教程

网站首页 > 基础教程 正文

Java常用设计模式-工厂模式

ccvgpt 2024-08-16 15:06:28 基础教程 12 ℃

工厂设计模式时一种比较常用的设计模式,工厂设计模式的 定义是:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到子类中。

工厂模式中,抽象类负责定义一些共性属性,Createor为抽象创建类,就是抽象工厂具体如何创建实现类由具体的实现工厂ConcreteCreator完成。工厂模式实现方式很多,先看一个比较常用的。这是一个比较常用的,大家可以在此基础上根据需要扩展

Java常用设计模式-工厂模式

1。定义一个抽象类

public abstract class Product {

// 产品公共方法

public void publicMethod() {

// 此处处理业务

System.out.print("公用方法publicMethod" );

}

// 抽象方法

public abstract void abctractMethod();

}

2.定义连个具体的产品类

public class ConcreteProduct1 extends Product {

@Override

public void abctractMethod() {

System.out.print("ConcreteProduct1");

// 业务处理

}

}

public class ConcreteProduct2 extends Product {

@Override

public void abctractMethod() {

System.out.print("ConcreteProduct2");

// 业务处理

}

}

3.抽象工厂

public abstract class Creator {

/**

* 创建一个产品对象,其输入参数类型可以自行设置

*/

public abstract <T extends Product> T createProduct(Class<T> c);

}

4.具体工厂实现类

public class ConcreteCreator extends Creator {

@Override

public <T extends Product> T createProduct(Class<T> c) {

Product product = null;

try {

product = (Product) Class.forName(c.getName()).newInstance();

}catch (Exception e) {

// 异常处理

}

return (T)product;

}

}

5.场景调用

public class Client {

public static void main(String[] args){

Creator creator = new ConcreteCreator();

Product product = creator.createProduct(ConcreteProduct1.class);

/**

* 下面继续处理业务

*/

product.abctractMethod();

}

}

代码git地址:https://gitee.com/wanghefei/designPattern

最近发表
标签列表