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() // 个性化的方法需要判断医院
        }
相关推荐
啦啦啦啦啦zzzz2 小时前
设计模式:单例模式和工厂模式
c++·单例模式·设计模式·工厂模式
2501_915909062 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
Lvan的前端笔记2 小时前
AndroidX 完全入门指南
android·androidx
帅次3 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展
总捣什么乱14 小时前
MySQL MySQL是怎么保证主备一致的?
android·mysql·adb
zzm6284 小时前
精读 HinDroid:基于异构信息网络的安卓恶意软件检测
android
weixin_440784115 小时前
Android基础知识汇总
android·java·android studio
sbjdhjd5 小时前
安全初级 | Upload 文件上传漏洞实操
android·经验分享·安全·网络安全·开源·php·apache
小白说大模型5 小时前
Python 工程化设计模式:AI 项目中的异步流水线与策略模式实战
人工智能·python·设计模式
small-pudding5 小时前
Cocos Creator Android 热更新方案实践:逻辑更新、远程 Bundle 与线上回滚
android