建筑设计模式:立面

最终绕过了另一种设计模式,即立面。 这一点很有意义,因为我们正在当前的项目中使用它。 我认为我一直在使用的NasaAPOD应用程序不是使用Facade的一个很好的例子,因为Facade应该是在简单的API后面隐藏系统的复杂性。 该应用程序已经非常简单,因此外观根本不复杂。 但是,如果我要充分利用外观模式,则ApiFacade.swift文件还将存储和从CoreData中获取,而不是每次都从API中获取。 这是获取功能差异的一些伪代码。

  ///当前执行 
func fetchPhotoInfo(完成:@escaping([NasaPhotoInfo])->无效{
//从api获取照片
} ///实现充分利用外观的实现
func fetchPhotoInfo(完成:@escaping([NasaPhotoInfo])->无效{
//检查照片是否在核心数据中
//如果包含核心数据,则返回照片
//从api获取照片
//将照片存储在核心数据中
//返回照片
}

同样,自从经历了这种外观体系结构以来,我对Codable进行了更多的工作,并且意识到如果我使用它而不是做下面的混乱,我可以清理我的代码。

总结起来,这是一个非常容易实现的模式。 就像我之前说的那样,由于该应用程序没有复杂的API,因此其当前功能并未真正很好地展示出外观模式。 我可能会在应用程序上进行扩展以存储到CoreData中以进一步展示它,但我会在一个单独的分支中进行此操作,因为我不想在其余现有应用程序中设置CoreData。

ashleyng /建筑设计模式

通过在GitHub上创建一个帐户,为ashleyng / ArchitectureDesignPatterns开发做出贡献。

github.com


Swift World:设计模式-外立面

从字面上看,立面意味着

medium.com

  • 到复杂子系统的更简单接口。

Swift的设计模式:立面模式

外墙图案是结构图案之一。 它的主要目的是隐藏系统,类或…的复杂性。

wysockikamil.com

  • 隐藏系统,类或逻辑的复杂性,并在简单的界面后面提供所有功能。