设计模式中的工厂与原型模式解析
1. 工厂模式相关探讨
在软件开发中,工厂模式是一种常见的创建对象的方式。不过,有人认为 Ref<T> 可能并非必要,因为它不具备多态性。若要让工厂管理不同类别的对象,仍需引入标记接口,让 Ref<T> 实现某个 IRef 接口。
1.1 函数式工厂
在纯函数式范式下,工厂模式的用途有限。F# 尽可能使用具体类型,通过函数和函数组合来表达实现的可变性。若要使用接口(F# 支持),可按如下方式定义:
type ICountryInfo =
abstract member Capital : string
type Country =
| USA
| UK
可以定义一个工厂函数,根据给定的国家返回正确初始化的 ICountryInfo 对象:
let make country =
match country with
| USA -> { new ICountryInfo with
member x.Capital = "Washington" }
| UK -> { new ICountryInfo with
member x.Capital = "London" }
工厂与原型模式详解
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



