除了实例及其get方法之外,Singleton类的其他成员的目的是什么?

时间:2017-09-29 00:36:47

标签: design-patterns singleton gang-of-four

来自GoF的设计模式

  

enter image description here

     

参与者

     

Singleton

     
      
  • 定义了Instance操作,允许客户端访问其唯一实例uniqueinstanceInstance是一个类操作(即,一个类方法)   Smalltalk和C ++中的静态成员函数。

  •   
  • 可能负责创建自己的唯一实例uniqueinstance

  •   
     

协作

     

•客户仅通过Singleton访问uniqueinstance实例Singleton   Instance操作。

在课程Singleton中,uniqueinstance是唯一的实例,Instance()是其获取方法。

其他成员的目的是什么:

  • 方法SingletonOperation()
  • 方法GetSingletonData()
  • 字段singletonData

感谢。

2 个答案:

答案 0 :(得分:1)

没有什么特别的,或者更确切地说它与Singleton无关,你可以删除它或重命名它或任何你喜欢的。这只是一种常规方法,与您的班级 Singleton 无关。

答案 1 :(得分:1)

图中的其他方法和字段表明允许单身人员包括状态和行为;即单身人士不仅仅是常数。此外,尽管GoF多次提到单身人士,但是单身人士的目的是进行细分,这是一个经常被忽视的特征。

  

当...的唯一实例应该可以通过子类化进行扩展时使用Singleton模式,并且客户端应该能够使用扩展实例而无需修改其代码。

因此,其他方法也表明单体可能是多态的。

  

Singleton类   可以是子类,并且使用实例配置应用程序很容易   这个扩展课程。您可以使用实例配置应用程序   在运行时需要的类。

本书接着描述了可以实现这种配置的多种方式。