Ruby 中 include 和 extend的区别

include: 把模块注入目标类或者模块作为实例方法

extend: 把模块注入目标类或者模块作为类方法

通过extend可以实现类扩展混入

类扩展混入可以通过以下步骤

1、定义一个模块,MyMixin

2、在Mymixin中定义一个内部模块,通常把它叫做ClassMethods,并给它定义一些方法。这些方法最终会成为类方法

3、覆写Mymixin#included() 方法来用ClassMethods扩展包含者(使用extend() 方法)

猜你喜欢

转载自littlepig.iteye.com/blog/2396625