码迷,mamicode.com
首页 > 其他好文 > 详细

《大话设计模式》ruby版代码:简单工厂模式

时间:2014-12-21 16:29:58      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

之前有看过《ruby设计模式》,不过渐渐的都忘记了。现在买了一个大话设计模式,看起来不是那么枯燥,顺便将代码用ruby实现了一下。

 

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

#工厂类
class OperationFactory
    def self.create_operate(operate)
        case operate
        when +
            OperationAdd.new()
        when -
            OperationSub.new()
        when *
            OperationMul.new()
        when /
            OperationDiv.new()
        end
    end
end

oper = OperationFactory.create_operate(/)
oper.number_a = 1
oper.number_b = 2
p oper.result

 

《大话设计模式》ruby版代码:简单工厂模式

标签:

原文地址:http://www.cnblogs.com/fanxiaopeng/p/4176659.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!