在计算机程序设计中,mixin是一个由另一个类继承的类,但它并不打算被实例化。一个类可以继承多个mixin,因此可以很容易地合并许多函数集合。尽管许多常用编程语言都使用mixin方法,但还有更多的语言没有使用mixin方法,包括C...
在计算机程序设计中,mixin是一个由另一个类继承的类,但它并不打算被实例化。一个类可以继承多个mixin,因此可以很容易地合并许多函数集合。尽管许多常用编程语言都使用mixin方法,但还有更多的语言没有使用mixin方法,包括C和Java。一般来说,mixin存在于脚本语言或那些能够创建脚本的语言中,比如JavaScript和Perl。女人用计算机倒立mixin是独特的,因为它们在编译过程中成为子类的一部分。它们的方法和常量包含在子类中。mixin类的另一个独特特点是可以在运行时定义方法并将其绑定到对象上。大多数语言使用不同的方法、绑定和定义方法是在编译时而不是在运行时。这种运行时绑定允许mixin非常灵活。多重继承中的一个常见问题是方法调用的模糊性,mixin可以解决这个问题,因为它们不遵循与多重继承完全相同的规则。例如,多重继承可以创建一个所谓的“死亡钻石”,其中父类a有子类B和C,而类D继承自类B和C。这种情况下的问题是,类a、B和C中同名的方法都可以继承到类D中,使同一方法的多个版本没有明显的区别。mixin通过保持方法的每个版本不同而解决了这个问题,而不是像在标准多重继承中那样试图覆盖它们。mixin不会重写继承到的类中的方法例如,如果一个类a定义了一个方法“myMethod”,并且继承了一个定义了方法“myMethod”的mixin B,那么这两个方法仍然可以毫无歧义地被调用,而“myMethod”在类A中的实现仍然是完全可访问的,这些方法的调用方式取决于实现mixin的语言,使用接口来模拟它们。这些语言中的接口不能模拟mixin的全部功能,因为接口只能包含常量和方法声明。另一方面,mixin可以包含方法的完整实现。那些不支持mixin的语言通常都有可行的替代方案,可以加以哄骗做同样的事情
-
发表于 2020-08-06 20:15
- 阅读 ( 981 )
- 分类:电脑网络