1

productID、productName、Price、Stock の列を持つデータベースのデータに基づく製品を含む基本的なショッピング カート モデルがあります。次に、消費者が productID、ProductName、Price で注文することを選択したアイテムを表すアイテム クラスがあります。次に、productID、ProductName、Price でアイテムを参照し、getPrice() で数量を参照する itemOrder クラスがあります。次に、itemOrder を保持し、itemOrder を追加および削除するためのメソッドを定義する Cart クラスがあります。

これらのクラスのいずれか、または典型的なショッピング カート システムでは、どこで 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
{

}
4

1 に答える 1

4

OOP では継承は必要ありません (たとえば、議論を参照してください)。あなたのクラスが世界から内部の詳細を隠しており、クライアントがオブジェクトを壊すために使用できない一貫したインターフェイスを提示し、それぞれが単一の仕事をうまくやっているなら、あなたは OOP を持っています (私の個人的な意見では)。

2 つのクラス間の関係がLiskov Substitution Principleを満たす場合にのみ継承を使用してください: Child が Parent である場合に限り、 Child は Parent から継承します。たとえば、インターフェイスを実装する場合、コードの呼び出しに関する限り、新しいクラスはそのインターフェイスです。

アイテム、製品、および注文は 3 つの異なるものであり、他のものと交換することはできません。3 つのクラスはすべて存在する必要がありますが、継承によって関連付けられるべきではありません。カート、アイテム、および注文は、継承ではなく、参照または包含によって製品を参照したり、相互に参照したりできます。

于 2013-11-04T02:23:57.230 に答える