A类
public class A
{
}
B类
public class B
{
}
如果B类是A类的一部分,A类同时又拥有B类的一个集合,怎么设计呢?
同时,在表示集合时,可以使用List<B>,Hashtable(string,B),索引器.
请问在什么情况下使用什么方式,在什么情况下不能使用什么方式.
请高手多多请教.
...全文
1176打赏收藏
类关联设计问题
A类 public class A { } B类 public class B { } 如果B类是A类的一部分,A类同时又拥有B类的一个集合,怎么设计呢? 同时,在表示集合时,可以使用List,Hashtable(string,B),索引器. 请问在什么情况下使用什么方式,在什么情况下不能使用什么方式. 请高手多多请教.
public interface IOrderDetail
{
void Change(IOrder iOrder);
}
public interface IOrder
{
void AddDetail(IOrderDetail iOrderDetail);
}
public class OrderDetail:IOrderDetail
{
public void Change(IOrder iOrder)
{
根据iOrder类来操作OrderDetail类.
}
}
public class Order:IOrder
{
List<object> lo = new List<object>();
public void AddDetail(IOrderDetail iOrderDetail)
{
lo.Add(iOrderDetail);
}
}
class Program
{
static void Main()
{
Order order = new Order();
OrderDetail orderDetail1 = new OrderDetail();
OrderDetail orderDetail2 = new OrderDetail();
OrderDetail orderDetail3 = new OrderDetail();
OrderDetail orderDetail4 = new OrderDetail();
order.AddDetail(orderDetail1);
order.AddDetail(orderDetail2);
order.AddDetail(orderDetail3);
order.AddDetail(orderDetail4);
}
}
用接口来实现。. 看看设计模式里面的观察者模式就明白了。
--------------------------------------------------
A与B的关系就想订单与订单明细一样.
订单拥有一个订单明细集合.
订单明细属于订单类.
public class Order
{
}
public Class OrderItems
{
}
如果
public Class Order
{
}
Public Class OrderItems
{
private Order mOrder;
public Order Order
{
get;
set;
}
订单明细对象可以知道所属于的订单信息;
但订单明细集合就会多出订单信息;