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() // 个性化的方法需要判断医院
        }
相关推荐
端庄的战斗机12 小时前
javascript 设计模式(文章很长,请自备瓜子,水果和眼药水)
开发语言·javascript·设计模式
机智的张尼玛14 小时前
我基于 Kotlin Multiplatform 实现了一套跨平台的弱网离线同步引擎
android·开源·kotlin
安卓修改大师17 小时前
安卓修改大师反编译引擎Apktool深度解析:版本选择、参数说明与实战技巧
android
error:(17 小时前
【系统与实战双精通】VS Code 调试 ROS2 Python 节点与 Launch 系统指南
android·java·python
饼干哥哥18 小时前
我开发了一个「吃掉」别人Skill来升级的饕餮.Skill,现在免费开源
人工智能·设计模式·开源
CaffeinePro19 小时前
什么是系统架构?架构师到底在做什么?
设计模式·架构
黄林晴19 小时前
Kuikly 是什么?和KMP有什么关系?
android·前端
帅次20 小时前
Android 高级工程师面试:Kotlin 语法基础 近1年高频追问 22 题
android·面试·kotlin·扩展函数·空安全
想你依然心痛20 小时前
嵌入式日志系统:分级日志、环形缓冲区与远程输出——运行时调试、非侵入
android·前端·javascript
AI人工智能+电脑小能手21 小时前
【大白话说Java面试题 第156题】【06_Spring篇】第16题:Spring 用到了哪些设计模式?
java·spring·设计模式·代理模式·工厂模式