【发布时间】:2016-04-25 09:33:53
【问题描述】:
我是 Swift 新手,我想为数据库访问创建一个抽象工厂。 这是我的协议
protocol IDAOFactory
{
associatedtype DAO: IDAO
func createAccountDAO<DAO: IAccountDAO>() -> DAO
}
struct RealmFactory: IDAOFactory
{
}
protocol IDAO
{
associatedtype T
func save(object: T)
}
protocol IAccountDAO : IDAO
{
}
struct AccountDAORealm: IAccountDAO
{
}
struct RealmFactory 中的 IDAOFactory 和 struct AccountDAORealm 中的 IAccountDAO 如何实现? 有人可以帮忙吗?
【问题讨论】:
-
为什么是结构?结构是值对象,而不是引用对象。
-
你的意思是使用Class会更好?
-
这是你的决定,但结构是作为 值 传递的,所以每个调用你的工厂的人都会得到不同的结构。每次将结构传递给函数时,都会创建该结构的副本。
-
另外,如果你以后需要,你将无法继承结构。
-
感谢您的建议
标签: swift design-patterns protocols abstract-factory