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

Android设计模式之工厂方法模式

一、定义:定义一个用于创建对象的接口,让子类决定实例化哪个类。

二、组成:

        1.抽象工厂:工厂模式的核心,声明工厂方法,返回抽象产品对象。

        2.具体工厂:实现工厂方法,返还具体的产品对象。

        3.抽象产品:定义产品的相关接口。

        4.具体产品:实现抽象产品的具体类。

三、具体例子:

        抽象产品

        public abstract class Product {

                public abstract void method();

        }

        具体产品A

        public class ConcreteProductA extends Product {

                @Override

                public void method(){

                        System.out.printn("I'm product A");

                }

        }

        具体产品B

        public class ConcreteProductB extends Product {

                @Override

                public void method(){

                        System.out.printn("I'm product B");

                }

        }

        抽象工厂

        public abstract class Factory{

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

        }

        具体工厂

        public class ConcreteFactory extends Factory{

                @Override

                public <T extends Procut> createProduct(Class<T> clz){

                        Product p = null;

                        try{

                                p  = (Product) Class.forName(clz.getName()).newInstance();

                        } catch (Exception e){

                                e.printStackTrace();

                        }

                }

        }

        客户端使用

        public class Client{

                public static void main(String[] args){

                        Factory factory = new ConcreteFactory();

                        Product p = factory.createProduct(ConcreteProductB.class);

                        p.method();

                }  

        }

四、应用场景:

        1.创建复杂对象:BitmapFactory

        2.动态加载布局:LayoutInflater的inflate()

        3.Fragment实例化:重写onCreateView方法创建具体的view

        4.MVP/MVVM架构中的对象创建:使用工厂方法创建Presenter或viewModel,避免直接new 对象

五、优缺点:

优点

        解耦:将对象创建逻辑与业务代码分离

        扩展性:新增产品类型只需要增加新工厂类,符合开闭原则

        统一管理:集中控制对象的创建过程

缺点

        类数量增加:每增加一个产品,需要新增对于的工厂类

        复杂度提升:对简单对象创建显得冗余


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

相关文章:

  • 西门子 CPU 1513-1 PN TCP Server 接收字符串前多了一个问号
  • Chrome(Google) 浏览器安装Vue2、Vue3 Devtools插件方法
  • 前端解决方案:实现网页截图并导出PDF功能
  • STC32单片机驱动UC1705X点阵屏调试VLCD没升压显示拖影
  • [7-01-03].SpringBoot3集成MinIo
  • Pytorch使用手册—计算机视觉领域的量化迁移学习教程(专题六十三)
  • 【大模型】数字人 EchoMimicV2 的环境配置和使用
  • 哈希表简单例子
  • Node.js 模块加载机制--详解
  • Javaweb后端登录会话技术jwt令牌
  • MySQL学习笔记(四)
  • git上传大文件到远程仓库中
  • RabbitMQ 学习整理2 - 消峰限流
  • 解锁 AWX+Ansible 自动化运维新体验:快速部署实战
  • 向量数据库学习笔记(1) —— 基础概念
  • apache安装脚本使用shell建立
  • C 语言中, scanf 函数在哪些情况下会结束输入读取:
  • 2025-03-25 学习记录--C/C++-PTA 习题11-7 奇数值结点链表
  • 修改git在提交代码时的名称
  • TARS:字节跳动开源的AI智能体,让生活更便捷、工作更高效