Есть ли термин для класса, который предназначен только для объединения нескольких классов? - PullRequest
0 голосов
/ 04 февраля 2020

Справедливо ли определять класс, который наследует от нескольких классов только для объединения методов / атрибутов всех этих классов?

Существует ли конкретный c термин для такого класса?

Пример,

class Feature1( object ):
   def __init__( self, initTuple ):
      self.attr1 = initTuple.f1Attr1
      self.attr2 = initTuple.f1Attr2

   def f1Foobar( self ):
       print "Some operation here"


class Feature2( object ):
   def __init__( self, initTuple ):
      self.attr1 = initTuple.f2Attr1
      self.attr2 = initTuple.f2Attr2

   def f2Foobar( self ):
       print "Some operation here"


class Feature3( object ):
   def __init__( self, initTuple ):
      self.attr1 = initTuple.f3Attr1
      self.attr2 = initTuple.f3Attr2

   def f3Foobar( self ):
       print "Some operation here"


class CombiningClass( Feature3, Feature2, Feature1
   def __init__( self, initTuple ):
      Feature1.__init__( initTuple )
      Feature2.__init__( initTuple )
      Feature3.__init__( initTuple )

В этом примере единственной целью CombiningClass является объединение функций классов Feature1, Feature2 и Feature3

PS - это не мое потребительная случай. Я только что попытался выразить это более простыми словами

1 Ответ

0 голосов
/ 04 февраля 2020

Насколько я знаю, для этого нет никакого конкретного c имени, обычно потому, что результатом является "полезный" конкретный класс или некая совокупность базового класса и нескольких миксинов.

Этот шаблон можно увидеть, например, в Werkzeug, где Request и Response - это состав базового класса и набор встроенных пользовательских миксинов. Это предоставляет большинству пользователей удобный готовый объект, но позволяет тем, кто нуждается в определенных c подфункциях или хочет только подмножество базовых миксинов, получить это, создав свои собственные деревья наследования.

...