设计模式之简单工厂模式学习笔记
发布日期:2021-05-06 23:31:31 浏览次数:13 分类:技术文章

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

前言

简单工厂模式,又叫做静态工厂方法模式。属于创建型工厂模式,但是不属于23中设计模式。学习简单工厂模式,是为了更好地学习工厂方法模式。

定义

简单工厂模式,即静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类型的实例。

结构模型

在这里插入图片描述角色拆解分析:

Factory工厂类:简单工厂模式的核心,负责实现创建所有实例的内部逻辑。工厂类中创建产品类的方法可以被外部调用,创建所需的产品对象。
Product具体产品类:是创建目标
ProductX抽象产品类:创建的所有对象的父类,负责描述所有实例所共有的公共接口

简单实现

还是以笔记本电脑为例吧!

1.抽象产品类ProductX(父类)

public abstract class Computer{
//产品的抽象方法 public abstract void start();}

2.具体产品类Product:

//美帝良心想public class LenovoComputer extends Computer {
@Override public void start() {
System.out.print("美帝良心想启动了"); }}
//铁板熊掌普public class HpComputer extends Computer {
@Override public void start() {
System.out.print("铁板熊掌普开机了..."); }}

3.工厂类Factory:

创建各种类型的笔记本电脑对象

public class ComputerFactory {    public static Computer createComputer(String type){        Computer computer=null;        switch (type){            case "lenovo":                computer = new LenovoComputer();                break;            case "hp":                computer = new HpComputer();                break;        }        return computer;    }}

4.客户端调用工厂类

客户端直接调用工厂类的制造方法,并开机

public class UserClient {    public static void main(String []args){        //用户要求组装铁板熊掌普并开机        ComputerFactory.createComputer("hp").start();    }}

优缺点

优点:用户直接输入参数即可得到对应的实例化对象,避免了直接实例化类,降低了耦合度

缺点:可实例化的类型在编译期间就确定了,增加新的类型意味着要修改工厂,违背了开放封闭原则。该模式需要提前知道所有要生成的类型,如果子类过多或者子类层次过多时不宜使用

使用场景

1.工厂类负责创建的对象比较少;

2.客户只需要知道传入工厂类的参数,不用关心创建对象的逻辑;

上一篇:动态sql+sql片段的例子
下一篇:Mybatis整合ehcache

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年04月05日 20时55分42秒