设计模式(2)工厂模式

让一个工厂类去生产出对象 (new )来。

我们想要一个 形状,我们用工厂去生产出,圆形,方形。

java 复制代码
package com.example.factory2;

public interface Shape {
    void draw();
}
java 复制代码
public class Square implements Shape {
    @Override
    public void draw() {
        Log.d("LIU", "this is Square");
    }
}
java 复制代码
public class Circle implements Shape {
    @Override
    public void draw() {
        Log.d("LIU","this is circle");
    }
}

factory class:

java 复制代码
public class ShapeFactory {
    public Shape getShape (int type) {
        if (type == 1) {
            return new Circle();
        } else if (type ==2) {
            return  new Square();
        } else {
            return null;
        }

    }
}

example and output:

java 复制代码
        ShapeFactory shapeFactory = new ShapeFactory();
        Shape shape = shapeFactory.getShape(1);
        shape.draw();
        Shape shape2 = shapeFactory.getShape(2);
        shape2.draw();



2024-10-02 22:23:47.705 14673-14673/com.example.factory2 D/LIU: this is circle
2024-10-02 22:23:47.706 14673-14673/com.example.factory2 D/LIU: this is Square

参考: 工厂模式 | 菜鸟教程

相关推荐
Deschen37 分钟前
设计模式-工厂模式
设计模式·简单工厂模式
阿无,42 分钟前
Java设计模式之工厂模式
java·开发语言·设计模式
Camel卡蒙3 小时前
DDD架构——充血模型、领域模型
java·设计模式·架构
rongqing20193 小时前
Google 智能体设计模式:目标设定与监控
设计模式
weixin_445476684 小时前
一天一个设计模式——开闭原则
服务器·设计模式·开闭原则
李广坤4 小时前
模板方法模式(Template Method Pattern)
设计模式
Asort10 小时前
JavaScript设计模式(十二)——代理模式 (Proxy)
前端·javascript·设计模式
简小瑞10 小时前
VSCode源码解密:Event<T> - 类型安全的事件系统
前端·设计模式·visual studio code
Mr_WangAndy10 小时前
C++设计模式_结构型模式_外观模式Facade
c++·设计模式·外观模式
李广坤10 小时前
策略模式(Strategy Pattern)
设计模式