2009-05-05 :-)
_ 朝ッ
0600 起床
_ チャリった
朝はすいておる
_ [M3]M3 行ってきた
都合により開場直後に行って霜月はるか( Maple Leaf )に挨拶しようとしていたんだが人が多すぎてサークルブースに近寄れないし流された。むしろこの様子ではチンタラと会話してる場合じゃなさそうだ。今度は午後に行くとしよう。ミッションインコンプリート
2 枚だけ購入

_ [Decorator][デザインパターン]Head First デザインパターンを写経する - 3章 Decorator パターン
Mix-in の使いどころがいまいち理解できてない。
#!/usr/bin/ruby -Ks
class Beverage
@description = "不明な飲み物"
def getDescription
@description;
end
def cost
end
end
class CondimentDecorator < Beverage
def getDescription
end
end
class Espresso < Beverage
def initialize
@description = "エスプレッソ"
end
def cost
1.99
end
end
class HouseBlend < Beverage
def initialize
@description = "ハウスブレンド"
end
def cost
0.89
end
end
class DarkRoast < Beverage
def initialize
@description = "ダークロースト"
end
def cost
0.99
end
end
class Decaf < Beverage
def initialize
@description = "カフェイン抜き"
end
def cost
1.05
end
end
class Mocha < CondimentDecorator
@beverage
def initialize( b )
@beverage = b
end
def getDescription
@beverage.getDescription + "、モカ"
end
def cost
0.20 + @beverage.cost
end
end
class Whip < CondimentDecorator
@beverage
def initialize( b )
@beverage = b
end
def getDescription
@beverage.getDescription + "、ホイップ"
end
def cost
0.10 + @beverage.cost
end
end
class Soy < CondimentDecorator
@beverage
def initialize( b )
@beverage = b
end
def getDescription
@beverage.getDescription + "、豆乳"
end
def cost
0.15 + @beverage.cost
end
end
def main
beverage = Espresso.new
puts "#{beverage.getDescription} $#{beverage.cost}"
beverage2 = DarkRoast.new
beverage2 = Mocha.new( beverage2 )
beverage2 = Mocha.new( beverage2 )
beverage2 = Whip.new( beverage2 )
puts "#{beverage2.getDescription} $#{beverage2.cost}"
beverage3 = HouseBlend.new
beverage3 = Soy.new( beverage3 )
beverage3 = Mocha.new( beverage3 )
beverage3 = Whip.new( beverage3 )
puts "#{beverage3.getDescription} $#{beverage3.cost}"
end
main
% ./beverage.rb エスプレッソ $1.99 ダークロースト、モカ、モカ、ホイップ $1.49 ハウスブレンド、豆乳、モカ、ホイップ $1.34
4873112494
[ツッコミを入れる]



