正文

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

文章摘要

这篇文章介绍了使用Ruby编程实现的运算工厂设计模式。文章通过定义一个基类`Operation`,并将其继承到加法、减法、乘法和除法类中,展示了如何用继承实现不同的运算逻辑。同时,文章还通过`FactoryModule`引入了工厂模式,定义了多个工厂类(如`AddFactory`、`SubFactory`等),这些工厂通过包含`FactoryModule`动态生成相应的运算实例。最后,文章通过示例代码展示了如何使用这些工厂类和运算类进行实际操作。

 # -*- 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