混入的概念
把多个类的能力混合在一起产生一个能代表所有混入类的类型的类。
the fundamental concept is that of mixing in capabilities from multiple classes in order to produce a resulting class that represents all the types of the mixins.
混入就是把存在的多个类映射为一个新的子类。
a mixin as a function that maps existing classes to new subclasses.
混入的价值
被混入的类如果发生改变则改变会影响到所有混入该类的类。
混入跟AOP很类似,同时也建议使用AOP来解决混入的问题。
C++混入
C++的多继承可以实现混入。
参数类型实现混入是最好的方式,一个类继承类型参数。
使用接口实现混入
组合优于配置,虽然JDK8之前的接口是不能有
使用装饰模式实现混入——装饰器的目的
满足各种可能的组合
使用装饰模式实现混入——装饰器的做法
The Decorator pattern uses layered objects to dynamically and transparently
add responsibilities to individual objects.
具有相同的接口。
Decorators are implemented using composition and formal structures (the
decoratable/decorator hierarchy), whereas mixins are inheritance-based.
参数类型的混入可以被当做是不需要继承结构的装饰器模式。
使用装饰器实现混入只有最后一层的方法是可见的。
使用动态代理实现混入
动态代理实现混入的最大好处就是生成的类是所有被混入类的子类。
动态代理实现混入的最大缺点就是每个混入的类必须实现接口。
使用之前必须先进行强制类型转换。
网友评论