博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单工厂模式
阅读量:6161 次
发布时间:2019-06-21

本文共 980 字,大约阅读时间需要 3 分钟。

设计流程

(1) 将需要创建的各种不同对象的相关代码封装到不同的类中,这些类成为产品类,而将他们的公共代码抽象提取并封装到一个抽象产品类中,使具体产品类成为抽象产品类的子类。

(2)提供一个工厂类用于创建各种产品。

抽象产品类:

public abstract class Product {    //  所有产品的公用业务方法    public void methodSame() {        //  公共方法的实现        System.out.println("我是产品!");    }    public abstract void methodDiff();}复制代码

具体产品类:

public class ConcreteProduct extends Product {    @Override    public void methodDiff() {        System.out.println("我是产品A");    }}复制代码

工厂类:

public class Factory {    //  静态工厂方法    public static Product getProduct(String arg){        Product product = null;        if(arg.equalsIgnoreCase("A")){            product = new ConcreteProduct();            // 初始化设置product        }        return product;    }}复制代码

客户类:

public class Client {    public static void main(String[] args) {        Product product = Factory.getProduct("A");        product.methodSame();        product.methodDiff();    }}复制代码

控制台结果:

我是产品!我是产品A复制代码

适用场景

(1) 工厂类负责创建的对象较少。

(2)客户端只知道传入工厂类的参数,对于如何创建对象并不关心。

转载地址:http://izgfa.baihongyu.com/

你可能感兴趣的文章
BZOJ3239Discrete Logging——BSGS
查看>>
SpringMVC权限管理
查看>>
spring 整合 redis 配置
查看>>
cacti分组发飞信模块开发
查看>>
浅析LUA中游戏脚本语言之魔兽世界
查看>>
飞翔的秘密
查看>>
Red Hat 安装源包出错 Package xxx.rpm is not signed
查看>>
编译安装mysql-5.6.16.tar.gz
查看>>
活在当下
查看>>
每天进步一点----- MediaPlayer
查看>>
PowerDesigner中CDM和PDM如何定义外键关系
查看>>
跨域-学习笔记
查看>>
the assignment of reading paper
查看>>
android apk 逆向中常用工具一览
查看>>
MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
查看>>
Skip List——跳表,一个高效的索引技术
查看>>
Yii2单元测试初探
查看>>
五、字典
查看>>
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>