以下是计数器懒汉模式的代码: ```python class CounterLazy: # 私有静态变量,用于存储唯一实例 __instance = None def __init__(self): if CounterLazy.__instance: raise Exception("不允许创建多个实例") self.count = 0 @staticmethod def get_instance(): # 如果实例不存在,则创建 if not CounterLazy.__instance: CounterLazy.__instance = CounterLazy() return CounterLazy.__instance def increment(self): self.count += 1 # 测试代码 counter1 = CounterLazy.get_instance() counter1.increment() print(counter1.count) ``` 以下是计数器饿汉模式的代码: ```python class CounterHungry: # 初始化时就创建实例 __instance = CounterHungry() def __init__(self): if CounterHungry.__instance!= self: raise Exception("不允许创建多个实例") self.count = 0 @staticmethod def get_instance(): return CounterHungry.__instance def increment(self): self.count += 1 # 测试代码 counter2 = CounterHungry.get_instance() counter2.increment() print(counter2.count) ``` 额外需要注意的逻辑点: 1. 要确保单例模式的唯一性,防止通过其他方式创建新的实例。 2. 处理多线程环境下的并发访问,避免出现同步问题。 3. 考虑实例的初始化时机和资源消耗,选择合适的懒汉或饿汉模式。 [2024-11-21 20:42:54 | AI写代码神器 | 368点数解答]