组合

什么是组合?

  一个对象的属性是来自于另外一个类的对象,称之为 组合。

 

为何用组合?

  组合也是用来结解决类代码冗余的问题。

 

如何使用?

 

继承是一种很有用的技术,不过还有一种实现相同功能的方法(组合),就是直接使用别的类和模块,而非依赖于隐式继承。

class Other(object):
    def override(self):
        print("othre override()")

    def implicit(self):
        print("other implicit()")

    def altered(self):
        print("other altrred()")

class Child(object):
    def __init__(self):
        self.other=Other()
    def implicit(self):
        self.other.implicit()
    def override(self):
        print("CHILD override()")
    def altered(self):
        print("CHILD,BEFORE OTHER altered")
        self.other.altered()
        print("CHILD,AFTER OTHER altered()")

son = Child()

son.implicit()
son.override()
son.altered()

结果:

other implicit()
CHILD override()
CHILD,BEFORE OTHER altered
other altrred()
CHILD,AFTER OTHER altered()

 这里的关系是 “A”里有“B”  ,可以看出Child 和Other 里的大部分内容是一样的,做一样的事,唯一不同的是我必须定义一个Child。implicit 函数来完成它的功能

 

posted @ 2018-10-24 16:40  萤huo虫  阅读(109)  评论(0编辑  收藏  举报