2013-11-04 111 views
1

我有一个基本购物车模型,其中的产品基于来自数据库的产品ID,产品名称,价格,库存列的数据。然后我有一个物品类,代表消费者选择用productID,ProductName,Price订购的物品。然后我有itemOrder类,它用productID,ProductName,Price和具有getPrice()的数量引用项目。然后有一个Cart类持有itemOrder并定义添加和删除itemOrder的方法。OOP真实世界示例

在任何这些类别或典型的购物车系统中,OOP技术在哪里发挥作用。

public class Product 
{ 
    public int productID { get; set; } 
    public string productName { get; set; } 
    ... 
} 
} 

public class Item : Product 
{ 

} 

public class ItemOrder : Item 
{ 
    public int itemQuantity { get; set; } 
    public double getPrice(int quantity, double price) 
    { 
     return price = price * quantity; 
    } 

} 
public class Cart 
{ 

} 
+0

当您讨论如何编排使用这些对象的进程之间的交互时,此问题更加适合。您可能需要查看物品清单上的库存并支付物品清单,然后发送物品清单已发货的确认,甚至可以添加退还物品清单的功能。您列出的普通对象只是数据结构,用于存放可使用标准约定传递的信息。 OO和接口通常在控制对象的访问和应用处理时发挥作用。 –

回答

2

OOP不需要继承(请参阅,例如,discussion)。如果你的课程隐藏了来自世界的内部细节,呈现一个客户端不能用来打破对象的一致界面,并且每个单独做好一项工作,你就有OOP(以我个人的观点)。

仅在两个类之间的关系满足Liskov Substitution Principle的情况下才使用继承:Child从Parent继承if和仅当 Child是父级。例如,当你实现一个接口时,就调用代码而言,新类就是该接口。

的项目,产品和订单三种不同的东西,他们都不是与他人互换。所有三个类都应该存在,但不应该通过继承来关联。购物车,物品和订单可以通过引用或遏制来引用产品,而不是通过继承。