评估设计模式:1、这个模式是否涵盖了我可能遇到的问题?2、这个问题发生的频率如何?3、我对解决未来某个问题的在意程度,是否足以让我现在花费精力去实现这个设计模式?
对象模板模式
是什么:
对象模板模式使用类或者结构体作为数据类型及其逻辑的规范。创建对象时使用模板,并在初始化时完成数据赋值。赋值时,要么使用模板中的默认值,要么使用类或者结构体的初始化器(也叫构造器)来提供数值。
有什么优点:
对象模板模式为 将数据与操作数据的逻辑组织在一起,即封装,提供了基础。封装使得对象可以在为其用户提供接口(API)的同时,隐藏接口的内部实现。这有利于防止组件之间形成紧耦合。
何时使用此模式:
除非是及其简单的项目,否则都应该使用此模式。尽管元组是 Swift 很有意思的特性,但是从长远来看,使用它表示数据会引发一些维护问题,而且创建一个类或者结构体并不是很复杂。
如何确定使用了正确的设计模式:
如果修改类或者结构体内部实现时,使用了此模式的组件无需做出相应的改变,则说明正确的实现此模式。
有哪些常见的陷阱:
唯一的陷阱是,应该使用类作为模板的时候却使用了结构体。结构体和类具有很多共同之处,但是当把它们创建的对象赋值给新变量时,它们的行为并不一致。
对象模式由三步操作组成:
1、第一步操作是调用组件请求 swift 运行时创建一个对象,并提供需要用到的模板名称,配置创建对象需要的运行时数据值。
2、在第二步操作中,swift 运行时分配存储该对象所需的内存,并使用模板创建该对象。模板中含有用于准备对象(设置初始数据)需要使用的初始化方法,这些方法要么使用调用组件提供运行时值,要么使用模板中定义的值(或者同时使用)来设置对象的初始状态。swift 运行时会调用这些方法来准备对象,以供调用组件使用。
3、swift 运行时把创建好的对象返回给调用组件。三步走的过程可以任意重复,因此一个模板可以创建多个对象。