Code
/// <Summary>
/// Order class, order class is loaded with list set object,
/// The set operations related to the order class are not the same as those of the Set object. The corresponding set operations are encapsulated to encapsulate the set operations on the customer.ProgramInvisible to avoid errors caused by direct operations on collection objects by the client program.
/// In this case, the order quantity value needs to be updated, so that the customer program will not directly operate on the list.
/// </Summary>
Public Class Order
{
Private List < Orderline > _ Orderlines;
Private Int _ Ordertotal;
Public Ienumerable < Orderline > Orderlines
{
Get { Return _ Orderlines ;}
}
Public Int Ordertotal
{
Get { Return _ Ordertotal ;}
}
Public VoidAddorderline (orderline)
{
_ Ordertotal+ =Orderline. Total;
_ Orderlines. Add (orderline );
}
Public Void Removeorderline (orderline)
{
Orderline = _ Orderlines. Find (o => O = Orderline );
If (Orderline = Null ) Return ;
_ Ordertotal -= Orderline. Total;
_ Orderlines. Remove (orderline );
}
}
Encapsulate operations on collection objects to ensure the consistency between business logic and set operations, and prevent customers' programs from directly calling collection operations.