博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ruby里面module和class的区别
阅读量:6949 次
发布时间:2019-06-27

本文共 681 字,大约阅读时间需要 2 分钟。

一句话概括,就是

class可以实例化module不可以

别的都一样

 

关于继承的一点区别

class是使用

 

module的应用场景

作为namespace,里面放一般的const或者自己的class作为工具模块,放通用方法,别的类里面直接include或者extend以后使用,也可以看成动态扩展业务类 可以作为抽象类,module里面提供默认实现,业务类include或者extend以后覆盖 作为接口来用,一个可用的接口库,

 

抽象类的例子

module MyAbstract  def walk    puts 'abstract walk'  end  def run    puts 'abstract run'  endendclass Person  include MyAbstract    def run      puts 'person run'    endenda = Person.newa.runa.walk

 

 

接口的例子

require 'module/interface'module Runnable  def walk  end  def run  endendclass Person  include Runnable  extend Module::Interface  interface Runnable do    def run      puts 'run'    end    def walk      puts 'walk'    end  endenda = Person.newa.runa.walk

 

转载地址:http://nohnl.baihongyu.com/

你可能感兴趣的文章
小程序笔记
查看>>
HDU 6521 Party
查看>>
tkinter内嵌Matplotlib系列(二)之函数曲线绘制
查看>>
using Static library in iOS
查看>>
通过SMTP协议来发送邮件
查看>>
paoding-rose 之 maven配置
查看>>
Prometheus TSDB分析
查看>>
JavaScript系列:函数式编程(开篇)
查看>>
Ural 1018 (树形DP+背包+优化)
查看>>
ZOJ 3626(树形DP+背包+边cost)
查看>>
入驻博客园了
查看>>
Map集合
查看>>
poj 2663 Tri Tiling (状压dp+多米诺骨牌问题+滚动数组反思)
查看>>
Linux 小知识翻译 - 「BitTorrent」
查看>>
spark java api数据分析实战
查看>>
计算机学院大学生程序设计竞赛(2015’12) 1001 The Country List
查看>>
CodeForces 689E Mike and Geometry Problem
查看>>
Netty是什么?
查看>>
Java Web学习笔记--JSP for循环
查看>>
Windows Server 2012 R2 里面如何安装Net Framework 3.5
查看>>