组合(Composite Pattern)模式的定义:
有时又叫作整体-部分(Part-Whole)模式,它是一种将对象组合成树状的层次结构的模式,用
来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式
组合模式的优缺点如下:
优点:
1.组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的 是单个对象,
还是组合对象,这简化了客户端代码
2.更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满 足“开闭原
则”
缺点:
1.设计较复杂,客户端需要花更多时间理清类之间的层次关系
2.不容易限制容器中的构件
3.不容易用继承的方法来增加构件的新功能
# 组合模式的实现class Store(object):
'''店面基类'''
#添加店面
def add(self,store):
pass
#删除店面
def remove(self,store):
pass
def pay_by_card(self):
pass
class BranchStore(Store):
def __init__(self,name):
self.name = name
self.my_store_list = []
def pay_by_card(self):
print("店面[%s]的积分已累加进该会员卡" %self.name)
for s in self.my_store_list:
s.pay_by_card()
#添加店面
def add(s