-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathshare.py
More file actions
46 lines (32 loc) · 852 Bytes
/
share.py
File metadata and controls
46 lines (32 loc) · 852 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env python
"""
享元模式
"""
class Water:
def __init__(self, taste):
print("water_init")
self.taste = taste
def set_user(self, user):
self.user = user
def show_info(self):
print(f"{self.user} 喝 {self.taste}水")
class WaterFactory:
def __init__(self):
self.__water = {}
def get_water(self, taste):
water = self.__water.get(taste)
if water is None:
water = Water(taste)
# self.__water.setdefault(taste,water)
return water
if __name__ == "__main__":
factory = WaterFactory()
wa = factory.get_water("糖")
wa.set_user("张三")
wa.show_info()
wb = factory.get_water("酸")
wb.set_user("李四")
wb.show_info()
wc = factory.get_water("酸")
wc.set_user("王五")
wc.show_info()