当前位置: 首页 > article >正文

设计模式(2)工厂模式

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

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

package com.example.factory2;

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

factory class:

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:

        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

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


http://www.kler.cn/a/331499.html

相关文章:

  • 坑人 C# MySql.Data SDK
  • Map.put 方法
  • 202412月最新植物大战僵尸杂交版【V3.0.1】更新内容与下载
  • flask before_request 请求拦截器返回无值则放行,有值则拦截
  • C语言经典100例
  • git使用和gitlab部署
  • Linux:进程间通信之信号量
  • 828华为云征文|华为云Flexus云服务器X实例部署——盲盒抽奖商城系统以及编译发布小程序
  • vue框架和uniapp框架区别
  • 小程序-使用npm包
  • C++学习笔记----8、掌握类与对象(三)---- CONSTEXPR与CONSTEVAL
  • json相关知识
  • 【docker笔记8-镜像推送】
  • 超好用的element的el-pagination分页组件二次封装-附源码及讲解
  • maven安装本地jar包到本地仓库
  • iMazing只能苹果电脑吗 Win和Mac上的iMazing功能有区别吗
  • Java 每日一刊(第20期):I/O 流
  • 09.useError
  • Python | Leetcode Python题解之第455题分发饼干
  • 【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
  • 使用 Python 模拟蒙特卡洛实验
  • 返回索引对象中各元素的数据类型 pandas.Index.dtype
  • Rust-结构体
  • TCP四次挥手过程详解
  • RealSense、ZED 和奥比中光Astra几款主流相机介绍及应用
  • VUE前后端分离毕业设计题目项目有哪些,VUE程序开发常见毕业论文设计推荐