Skip to content

Instantly share code, notes, and snippets.

View Sihui's full-sized avatar

Sihui Huang Sihui

View GitHub Profile
@Sihui
Sihui / diet_order_cd_p.rb
Last active July 14, 2017 15:19
Design Pattern: Template Method and Chipotle Raw
class DietOrder
def vessel
raise 'What is your choice?'
end
def meat
raise 'What is your choice?'
end
def toppings
@Sihui
Sihui / diet_order_cd_c.rb
Last active December 20, 2017 16:53
Design Pattern: Template Method and Chipotle
require 'date'
class DietOrderSihui < DietOrder
def vessel
Bowl
end
def meat
Steak
end
@Sihui
Sihui / make_cheesecake.rb
Last active July 15, 2017 22:59
Design Pattern: Simple Factory and Cheesecake Factory
def make_cheesecake(type)
cheesecake = nil
case type
when 'oreo'
cheesecake = OreoCheesecake.new
when 'coffee'
cheesecake = CoffeeCheesecake.new
when 'tiramisu'
cheesecake = TiramisuCheesecake.new
@Sihui
Sihui / cc_mango.rb
Last active July 15, 2017 23:00
Design Pattern: Simple Factory and Cheesecake Factory Raw
def make_cheesecake(type)
cheesecake = nil
case type
when 'oreo'
cheesecake = OreoCheesecake.new
when 'coffee'
cheesecake = CoffeeCheesecake.new
when 'tiramisu'
cheesecake = TiramisuCheesecake.new
@Sihui
Sihui / cc_wo_coffee.rb
Created July 15, 2017 23:06
Design Pattern: Simple Factory and Cheesecake Factory
def make_cheesecake(type)
cheesecake = nil
case type
when 'oreo'
cheesecake = OreoCheesecake.new
when 'tiramisu'
cheesecake = TiramisuCheesecake.new
when 'smores'
cheesecake = SmoresCheesecake.new
@Sihui
Sihui / cc_low_carb.rb
Created July 15, 2017 23:14
Design Pattern: Simple Factory and Cheesecake Factory
def make_cheesecake(type)
cheesecake = nil
case type
when 'oreo'
cheesecake = OreoCheesecake.new
when 'tiramisu'
cheesecake = TiramisuCheesecake.new
when 'smores'
cheesecake = SmoresCheesecake.new
@Sihui
Sihui / cheesecake_factory.rb
Last active March 9, 2021 16:59
Design Pattern: Simple Factory and Cheesecake Factory
class CheesecakeFactory
def create_cheesecake(type)
case type
when 'oreo'
OreoCheesecake.new
when 'tiramisu'
TiramisuCheesecake.new
when 'smores'
SmoresCheesecake.new
when 'hazelnut'
@Sihui
Sihui / make_cc_w_factory.rb
Created July 15, 2017 23:39
Design Pattern: Simple Factory and Cheesecake Factory Raw
def make_cheesecake(type)
factory = CheesecakeFactory.new
cheesecake = factory.create_cheesecake(type)
cheesecake.make_crust
cheesecake.add_layers
cheesecake.bake
cheesecake.refrigerate
cheesecake.add_toppings
cheesecake
end
@Sihui
Sihui / waffle.rb
Last active July 16, 2017 16:08
Design Pattern: Decorator and Waffle
class Waffle
attr_reader :waffle
def initialize
@waffle = 'This is a waffle'
end
def serve
puts waffle
end
@Sihui
Sihui / waffle_example.rb
Last active July 16, 2017 05:43
Design Pattern: Decorator and Waffle
plain_waffle = Waffle.new
plain_waffle.serve
plain_waffle.eat