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

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 对象

五、优缺点:

优点

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

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

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

缺点

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

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

相关文章:

  • 全面讲解python的uiautomation包
  • 数据库的操作,以及sql之DML
  • Emacs 折腾日记(十九)——配置输入法和vim操作方式
  • 64. MfgTool烧写工具详解
  • 在K8S中使用ArgoCD做持续部署
  • 模拟算法的应用
  • React 知识回顾(HOC、合成事件、Fiber)
  • python每日十题(10)
  • Hugging Face Spaces 介绍与使用指南
  • 茱元游戏TV2.9.3 | 适配多设备的经典街机游戏集合
  • 025-lz4
  • 21.Excel自动化:如何使用 xlwings 进行编程
  • 高斯核函数
  • Unity AzureKinect AvatarController 公开变量解释
  • 银河麒麟V10-SP3-aarch64操作系统版本 docker run时报错permission denied
  • IPv4向IPv6过渡
  • GitLab 中文版17.10正式发布,27项重点功能解读【一】
  • vue-如何将组件内容作为图片生成-html2canvas
  • C语言switch语句
  • OpenGL多纹理处理
  • 深圳网站建设lxhd/百度极速版app下载
  • 腾讯的网站建设用了多少钱/班级优化大师下载安装app
  • 专门做免费东西试吃的网站/网页设计制作教程
  • 湖北皇奥建设工程有限公司网站/百度指数可以用来干什么
  • 在线制作头像模板/seo优化运营
  • 网络架构师工资一般多少/昆明百度关键词优化