python 组合,派生
class AddrBookEntry(object):
"地址本"
def __init__(self,name,phone):
self.name=name
self.phone=phone
print "初始化:姓名 ",name,"电话 ",phone
def updatePhone(self,newphone):
self.phone=newphone;
print "更改后电话: ",phone
#继承
class EmplAddBookEntry(AddBookEntry):
"员工地址薄"
def __init__(self,name,phone,employid,email):
AddrBookEntry.__init__(self,name,phone)
self.employid=employid
self.email=email
def updateEmail(self,newEmail):
self.email=newEmail
print "更改后Email: ",email
#组合
class NewAddrBookEntry(object):
"在原先的地址本加入了组合"
def __init__(self,name,phone):
self.name=Name(name)
'''Name为一个类(Name类),将其组合在地址本类中,好处:
1.不需要重新设计地址本类,只需要将新创建的类组合进来即可
2.代码容易维护,Name类中的代码bug被修正,将反映到地址本类中
'''
self.phone=Phone(phone) #Phone为一个类(Phone类),将其组合在地址本类中
NewAddrBookEntry类由它自身和其他类组合而成,这就在一个类和其他组成类之间定义了一种"有一个"的关系.比如,我们的NewAddrBookEntry类有一个Name类实例和一个Phone实例.
创建组合对象可以实现附加功能,因为这些类都不相同.每个类管理它们自己的名字空间和行为. 不过当对象之间有更接近的关系时,派生的概念可能对你更有意义,特别是当你需要一些相似的对象,但却有少许不同功能的时候
当类之间有显著的不同,并且(较小的类)是较大的类所需要的组件时,组合表现的很好。但当你设计"相同的类但有一些不同的功能时",派生就是一个更加合理的选择了.
浙公网安备 33010602011771号