主页 > 知识库 > Ruby设计模式编程中使用Builder建造者模式的实例

Ruby设计模式编程中使用Builder建造者模式的实例

热门标签:地图标注赚钱项目注册 滴滴外呼系统 徐州网络外呼系统哪个好 湖州u友防封电销卡 百度地图标注自定义图片 高德地图标注客服 白银外呼paas系统 电销机器人厂商代理 常德电销平台外呼系统软件价格

先来复习一下设计模式的基本概念:
定义
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要重新定一个建造者就可以了。
实用范围
1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2.当构造过程必须允许被构造的对象有不同表示时。
角色
在这样的设计模式中,有以下几个角色:
1.builder:为创建一个产品对象的各个部件指定抽象接口。
2.ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并 提供一个检索产品的接口。
3.Director:构造一个使用Builder接口的对象。
4.Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
下面我们来看一个实例:
需求:

画一个小人,有头,有身体,两手两脚即可。

初始代码:

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

#小人一
puts '这是第一个小人'
puts '小人一:头'
puts '小人一:瘦身体'
puts '小人一:双手'
puts '小人一:双脚'

#小人二
puts '这是第二个小人'
puts '小人二:头'
puts '小人二:胖身体'
puts '小人二:双手'
puts '小人二:双脚'

问题:代码重复,而且容易出错,缺胳膊少腿之类的。

改进代码:

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

#
class PersionBuilder
  def head
    puts ''
  end
  def body
    puts ''
  end
  def arm
    puts ''
  end
  def leg
    puts ''
  end
end

#小人一
class PersionThinBuilder  PersionBuilder
  def head
    puts '头'
  end
  def body
    puts '瘦身体'
  end
  def arm
    puts '双手'
  end
  def leg
    puts '双脚'
  end
end
#小人二
class PersionFatBuilder  PersionBuilder
  def head
    puts '头'
  end
  def body
    puts '胖身体'
  end
  def arm
    puts '双手'
  end
  def leg
    puts '双脚'
  end
end

#指挥者类
class PersionDirect
  def initialize(persion)
    @persion = persion
  end
  
  def create_persion
    @persion.head
    @persion.body
    @persion.arm
    @persion.leg
  end

end
puts '这是第一个小人'
p1 = PersionThinBuilder.new
pd1 = PersionDirect.new(p1)
pd1.create_persion

puts '这是第二个小人'
p2 = PersionThinBuilder.new
pd2 = PersionDirect.new(p2)
pd2.create_persion


您可能感兴趣的文章:
  • 设计模式中的观察者模式在Ruby编程中的运用实例解析
  • 实例解析Ruby设计模式开发中对观察者模式的实现
  • 深入剖析Ruby设计模式编程中对命令模式的相关使用
  • Ruby设计模式编程中对外观模式的应用实例分析
  • 详解组合模式的结构及其在Ruby设计模式编程中的运用
  • 设计模式中的模板方法模式在Ruby中的应用实例两则
  • 实例解析Ruby设计模式编程中Strategy策略模式的使用
  • 实例讲解Ruby使用设计模式中的装饰器模式的方法
  • 详解Ruby设计模式编程中对单例模式的运用
  • Ruby设计模式编程之适配器模式实战攻略
  • Ruby使用设计模式中的代理模式与装饰模式的代码实例
  • Ruby中使用设计模式中的简单工厂模式和工厂方法模式
  • 解析proxy代理模式在Ruby设计模式开发中的运用

标签:永州 荆门 公主岭 辽宁 梧州 三沙 普洱 张家界

巨人网络通讯声明:本文标题《Ruby设计模式编程中使用Builder建造者模式的实例》,本文关键词  Ruby,设计模式,编程,中,使用,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Ruby设计模式编程中使用Builder建造者模式的实例》相关的同类信息!
  • 本页收集关于Ruby设计模式编程中使用Builder建造者模式的实例的相关信息资讯供网民参考!
  • 推荐文章