设计问题:
我有一个单身人士(在目标C中,但这并不重要)
单例是一个类(对象),它实际上是许多类访问的数据结构,并且是单个的(因此 - 单例)
现在我想添加撤消功能 - 这实际上是保存了对象状态的快照 - 所以我可以回到它。
我真正需要做的是打破对象的单一性(需要它的一个副本)。 但这不允许我在所有课程之间方便地分享。
想法?
答案 0 :(得分:1)
“单例是一个类(对象),它实际上是许多类访问的数据结构,并且是单个”
我认为让单个对象拥有数据结构的集合更容易。然后,您只需创建数据结构的副本,而不是单例副本。
答案 1 :(得分:1)
10年前,当设计模式首次被开发人员采用时,单身模式变得流行起来。在那之后的几年里,单身人士已经被废弃,因为在单元测试中嘲笑是非常困难的。因此,最简单的答案是完全放弃单身模式,转而采用更友好的模式。
答案 2 :(得分:0)
您可以在单件类中实现- (id) copy
方法。
在此方法中,分配您的类的新实例,并将其所有属性设置为共享实例属性的副本。