Tag: Dependenc

您不需要(快速)依赖注入框架

Scala中有Cake Design Pattern来进行依赖注入(DI),还有一个称为Minimal Cake Design Pattern的最小版本。 我们实际上并不需要在Swift中进行DI的框架。 仅使用纯Swift代码,我将向您介绍如何使用最小蛋糕设计模式在生产和测试代码上进行DI。 每个类都需要接口和实现 对于每个类,我将使用协议创建一个以Uses…开头的接口 ,并使用以MixIn…开头的类创建一个Implementation 。 接口仅声明协议可以做什么,而实现则声明如何 。 协议UserRepository { func findById(id:Int)->用户? } //接口 协议UsesUserRepository { var userRepository:UserRepository {get} } //实现 类MixInUserRepository:UserRepository { func findById(id:Int)->用户? { 返回用户(id:id,名称:“ orakaro”,角色:“ member”) } } 当UserRepository的实例被另一个类(例如UserService)使用时,我将使用上述Interface来声明新的配对协议/扩展,当然还要声明UserService本身的另一个Interface和Implementation。 听起来比它复杂。 让我们看一下代码。 协议UserService:UsesUserRepository { func Promotion(asigneeId:Int)->用户? } 扩展UserService { func Promotion(asigneeId:Int)->用户? { Guard var asignee = userRepository.findById(id:asigneeId)else […]