Mixin
除了继承之外,Mixin是Django视图类中实现代码级复用的另一种主要模式。
什么是Mixin?
根据WIKI 的定义,Mixin是一种编程理念,用来将代码注入到一个类里,使被注入的类具备Mixin所 实现的功能。当需要在多个类之间复用代码时,将这部分代码抽出来定义一个新的类,就构成 一个Mixin。Mixin通常作为父类,使继承类具备了它实现的功能。
Got it?
三个要点:
- 引入Mixin概念的目的,是实现类之间的代码复用(功能复用)
- 一个Mixin就是一个语法上的类,但是这个类本身不一定需要有明确的语义,它仅仅是可复 用代码(功能特性)的堆积。Mixin存在的目的仅仅是为了以可复用的方式充实那些真 正具有语义的类的功能
- 其他类通过继承Mixin类,来获得Minxi实现的功能
看下面的示例,我们将日志功能抽出来放在LogMixin里实现,把生成页面header和footer的功能 抽出来放在LayoutMixin里实现:
创建一个StyleMixin,实现各视图CSS样式的统一管理。