编程很有趣:我了解到,通过尝试简单的挑战,读了一些书和下面的一些教程。我能够掌握用OO编写的概念(我在Ruby中这样做),并自己编写一些代码。但是,我感觉到的是我重新发明轮子:我没有接受过教育或找到一本书(这是一本免费的书),它解释了为什么而不是如何,并且我已经学会了从A团队来说,这是让它走到一起的计划。所以,凭借我的nuby Ruby技能,我决定编写一个虚拟商店。我想通了以下内容:设计技术:如何设计一个复杂的系统处理订单,产品和单位
我的虚拟商店将有:
- 产品和服务
- 存货
- 订单和运输
- 客户
现在这不是复杂的。在一些很酷的工具(CMapTools)的帮助下,我提出了一些概念,但很快(由于我的设计经验不足),我的设计开始咬我。我的第一个产品线是虚拟的“笔记本电脑”。所以,我创建了一个类(红宝石):
class Product
attr_accessor :name, :price
def initialize(name, price)
@name = name
@price = price
end
end
可实例做(IRB)
x = Product.new("Banana Pro", 250)
因为我希望我的虚拟客户能够购买多个产品,或各种配置,我想出我需要某种“订单”机制。
class Order
def initialize(order_no)
@order_no = order_no
@line_items = []
end
def add_product(myproduct)
@line_items << myproduct
end
def show_order()
puts @order_no
@line_items.each do |x|
puts x.name.to_s + "\t" + x.price.to_s
end
end
end
,可以通过做(IRB)
z = Order.new(1234)
z.add_product(x)
z.show_order
锦绣被实例化,我现在有一个非常简单的订购系统,让我将产品添加到订单。但是,这是我真正的问题。
如果我的产品有三种型号(经济,商业,炫耀)会怎样?或者让我的产品由独立的单元组成(更大的屏幕,更好的键盘,不同的操作系统)?当然,我可以让他们三个独立的产品,或增加我的产品类的复杂性,但我期待的是设计一个灵活的产品对象的最佳实践,可以在现实世界中使用,以促进一个复杂的系统。
我的道歉,如果我的语法和我的拼写与错误,因为英语不是我的母语,我花时间检查,据我可以理解和翻译正确!
感谢您的回答,评论和反馈!