android——设计模式(工厂模式)

一、工厂模式

Android 设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而不必暴露其内部的创建逻辑。在Android中,工厂模式通常用于管理复杂组件实例化的过程,比如创建各种View、Activity、Fragment等。通过将组件的创建过程封装在一个单独的类或者接口中,可以方便地改变实现细节而无需修改客户端代码。

以下是工厂模式的基本步骤:

  1. 定义一个抽象工厂接口或类,声明能够创建所需对象的方法。
  2. 创建各个具体的工厂类,每个类都负责生产一种类型的对象。
  3. 使用工厂方法来请求所需的对象,这会返回一个已经配置好的对象实例。

示例:各个医院的个性化代码都抽取出来放到一个地方统一管理

Kotlin 复制代码
interface IHospital {
    fun getProjectInfo()
}
Kotlin 复制代码
/**
 * 默认的医院
 */
class DefaultHospital : IHospital {

    override fun getProjectInfo() {
        println("DefaultHospital--getProjectInfo 共同的方法!")
    }

    // 定义一个非接口的方法
    fun fetch() {
        println("DefaultHospital is fetching!")
    }
}
Kotlin 复制代码
/**
 * ZJ医院
 */
class ZjyyHospital : IHospital {

    override fun getProjectInfo() {
        println("ZjyyHospital--getProjectInfo 共同的方法!")
    }

    // 定义一个非接口的方法
    fun purr() {
        println("ZjyyHospital is purring!")
    }

}
Kotlin 复制代码
// 医院工厂
object HospitalFactory {
    private val mZjyyHospital = ZjyyHospital()
    private val mDefaultHospital = DefaultHospital()
    fun create(type:Int): IHospital {
        return when(type) {
            0 -> mZjyyHospital
            else -> mDefaultHospital
        }
    }
}

在main中使用:

Kotlin 复制代码
val zHospital = HospitalFactory.create(0)
        zHospital.getProjectInfo() // 接口中的方法可以直接调用
        if (zHospital is ZjyyHospital){
            zHospital.purr() // 个性化的方法需要判断医院
        }
相关推荐
木子欢儿1 小时前
Zabbix 7.4 Alpine 版 Docker Compose 部署
android·运维·docker·容器·zabbix
素师良码2 小时前
第9篇:Android驱动踩坑实录:DSI RX FIFO前置脏0、数据错位复盘
android
夜雪一千2 小时前
如何在MySQL中实现字段级加密
android·数据库·mysql
夜雪一千2 小时前
MySQL 如何存储经纬度坐标:选型、建表、空间查询实战
android·mysql·adb
JMchen3 小时前
集成第三方 C/C++ 库到 Android NDK 项目:OpenCV 与 FFmpeg 实战指南
android·opencv·cmake
范中勤3 小时前
技术文档:模型工厂 `llm_provider` / `llm_use` 分层设计
设计模式·langchain·架构设计·模型工厂·llm_provider
有毒的教程4 小时前
Dev-C++ 使用扩展库两种方式:DevPak一键安装 / 手动配置(重点)
android·c++·adb
mmsx5 小时前
Android 测绘数值基础:测量单位系统与七四参数、高程拟合
android
郑州光合科技余经理5 小时前
出海外卖平台:支付对接为什么要和下单收款分开
android·java·开发语言·前端·后端·php·ai编程
夜雪一千5 小时前
MySQL 如何提高查询速度:从索引、SQL、表结构到实战调优
android·sql·mysql