【设计模式】calendar的单例需求和实现

calendar单例需求:

参数:有default的calendar file

1、如果无实例,无参数调用,取default,检查是否合法,存入实例

2、如果无实例,有参数调用,检查是否合法,存入实例

3、如果有实例,无参数调用,直接取该实例

4、如果有实例,有参数调用,检查是否合法,存入实例

 

单例的两种实现方式:

1、每次生成对象,连id都是相同的,指向同一个地方

2、每次生成对象,只是共享同一个状态而已。

 

第一种比较方便:可以实现如下:

_instance = None

@classmethod getCalendar(file=None):如果无instance或者有参数: 那么生成新instance并储存,否则直接返回旧instance

生成新instance时用到__init__函数,检查是否合法之类的在__init__中调用。

 

posted on 2016-12-14 16:33  yesuuu  阅读(669)  评论(0编辑  收藏  举报

导航