【发布时间】:2012-12-29 12:20:33
【问题描述】:
我正在考虑一个中/大型项目,它需要存储不同的数据类型并将它们呈现给不同的客户。
我现在苦苦挣扎的是,如何构建一个能够存储不同类型对象并在需要时查询它们的数据和服务层。
例如,考虑一个客户端 - 服务器应用程序,其中客户端只能读取每个单独的服务器的广播,现在考虑一个场景,花店和餐馆将他们的数据广播给街上的一个人电话。
class SoCalledServer
{
public AccessibleClientData Broadcast(ClientData broadcastMessage)
{
Broadcast(broadcastMessage)
}
}
class RestaurantClient : AbstractClient
{
public SomeGenericDataType menu;
public RestaurantClient()
{
menu = new SomeGenericDataType<List>();
menu.Add("Sushi");
menu.Add("Fried potatoes");
}
public override void BeginBroadcast()
{
server.Broadcast(menu);
}
}
class FlowerShopClient : AbstractClient
{
public SomeGenericDataType flowersOnSale;
public FlowerShopClient()
{
flowersOnSale = new SomeGenericDataType<List>();
flowersOnSale.Add("Daisy");
flowersOnSale.Add("Rose");
}
public void BeginBroadcast()
{
server.Broadcast(flowersOnSale);
}
}
在这个例子中,我有两种不同类型的数据(一种是餐厅的菜单,另一种是花店的鲜花),它们可以有不同的成员(例如,菜单有价格和成分,花店的数据有花名和描述、数量和/或价格等...),这个“客户”样本可以扩展。
我应该如何为这种类型的应用程序建模?我应该使用什么样的数据库模式来存储身份不明的和各种类型的数据?我的服务器和客户端应用程序应该如何相互通信?而最重要的客户端应该如何获取广播的数据类型(从泛型类型)?
【问题讨论】: