Ruby中使用设计模式中的简单工厂模式和工厂方法模式(ruby模块和类的区别)怎么可以错过

随心笔谈2年前发布 admin
196 0 0

文章摘要

这篇文章介绍了使用Ruby语言实现的运算类和工厂模式。文章首先定义了四个运算类(加法、减法、乘法、除法),每个类继承自基类`Operation`,并在`result`方法中实现了对应的运算逻辑。然后,文章通过工厂模式(FactoryModule)定义了四个工厂类(AddFactory、SubFactory、MulFactory、DivFactory),每个工厂类的`create_operation`方法返回相应的运算对象实例。最后,文章展示了如何使用这些工厂类创建运算对象,并计算结果,最终输出结果为3。


# -*- encoding: utf-8 -*-

#运算类
class Operation
attr_accessor :number_a,:number_b

def initialize(number_a=nil, number_b=nil)
@number_a=number_a
@number_b=number_b
end

def result
0
end
end

#加法类
class OperationAdd < Operation
def result
number_a + number_b
end
end

#减法类
class OperationSub < Operation
def result
number_a – number_b
end
end

#乘法类
class OperationMul < Operation
def result
number_a * number_b
end
end

#除法类
class OperationDiv < Operation
def result
raise ‘除数不能为0’ if number_b==0
number_a / number_b
end
end

module FactoryModule
def create_operation
end
end
#加法工厂
class AddFactory
include FactoryModule

def create_operation
OperationAdd.new
end
end

#减法工厂
class SubFactory
include FactoryModule

def create_operation
OperationSub.new
end
end
#乘法工厂
class MulFactory
include FactoryModule

def create_operation
OperationMul.new
end
end
#除法工厂
class DivFactory
include FactoryModule

def create_operation
OperationDiv.new
end
end

factory=AddFactory.new
oper=factory.create_operation
oper.number_a=1
oper.number_b=2
p oper.result

© 版权声明

相关文章