首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
设计模式
订阅
猫克杯
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
ViewModel 和 LiveData:为设计模式打 Call 还是唱反调?
理想情况下,ViewModel 不应该知道任何关于 Android 的事情(如Activity、Fragment)。 这样会大大改善可测试性,有利于模块化,并且能够减少内存泄漏的风险。一个通用的法则是,你的 ViewModel 中没有导入像 android.*这样的包(像 an…
[Swift设计模式] 原型
原型设计模式用于创建基础对象的复制。 当你有一组对象的基础配置时,你需要复制这些预定义的值给一个新的对象。这个过程,你其实正在复制原型对象。😊😊😊 这种方法有一个好处,你不需要使用子类,而是通过独立的复制配置对象,这样可以避免一些样板代码。🤔 原型实现只需要很少的代码,…
[Swift设计模式] 比较工厂设计模式
了解静态工厂,简单工厂,工厂方法和抽象工厂四种设计模式在 Swift 语言中的区别。 前面的文章介绍了所有的工厂模式,现在让我们来区分一下它们。构建过程相对直接,在范例中我将用到 UIColor 来演示一些基础概念。🧙♂️ 以上 Swift 世界中几种工厂模式的实例代码。希…
[Swift设计模式] 命令
当你需要为支持即时调用的不同的动作提供一个通用接口时,命令模式可以派上用场。通常来说,命令是一个封装了执行动作需要用到的所有数据和方法的单一对象。 命令常被用来处理人机接口的动作,实现撤销管理器,或者管理事务。让我们来看一下 Swift 中如何实现一个命令模式。 💾 保存下这…
[Swift设计模式] builder
实现 builder 模式,隐藏创建拥有大量属性的对象的复杂性。 builder 模式可以采用多种方式实现,不过如果你明白这种模式的主要目标,那么用哪一种方式都无所谓。 Builder 设计模式的意图在于从复杂对象的表达中分离出构造对象的部分。 因此,如果你的对象有很多属性,而…
[Swift设计模式] init模式
这个过程是通过构造器完成的。构造器是一种特殊的函数,使用保留的关键字 init 来声明,因此你不需要用到关键字 func。通常,构造器也不返回任何值。 首先想象一个非常简单的结构体,它只有两个属性。 上面的规则说到我们必须初始化所有的存储属性,那就让我们来创建第一个 init …
[Swift设计模式] UIKit init
实际上,UIViewController 的构造过程相当直接。想要完全掌控,你只需要重写几个方法。根据环境的区别,不同的 init 方法会被调用。如果你用的是 storyboard,init(coder) 将是你的选择。如果你是通过外部 nib 文件构建控制器, init(ni…
[Swift设计模式] 抽象工厂
抽象工厂提供一种封装一组独立工厂的方式,这些独立工厂都有一个共同的主题。 抽象工厂的实现通常结合了简单工厂和工厂方法的准则。工厂方法创建独立的对象,然后所有的事情再经过一个“抽象的”的简单工厂包装起来。让我们一起来看下范例代码。 😅 如你所见,使用抽象工厂将会影响整个应用的逻…
[Swift设计模式] 静态工厂
静态工厂模式的头等好处是:每一个静态工厂方法都有一个自己的名字。Apple 在 UIColor 类实现中使用这个模式创建了许多命名颜色,比如 .red, .yellow,等。 注意,Swift 中的这种实现并非是方法,而是静态属性,返回一个实际的实例。 记住一天或者一周有多少秒…
[Swift设计模式] 单例
单例一直是被批评最多的设计模式。让我们来了解 iOS 项目中应当如何合理使用单例。 由于简单,单例非常流行,被广泛采用。一个单例类在整个应用生命周期内只允许存在一个实例。这个实例是通过一个静态属性访问,全局共享,就像一个全局变量一样。🌏 单例之所以名声不好是因为他们共享全局可…