我正在考虑一个中/大型项目,它需要存储不同的数据类型并将它们呈现给不同的客户。
我现在苦苦挣扎的是,如何构建一个能够存储不同类型对象并在需要时查询它们的数据和服务层。
举个例子,考虑一个客户端-服务器应用程序,其中客户端只能读取每个单独的服务器的广播,现在想想花店和餐馆用智能手机向街上的人广播他们的数据的场景。
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);
}
}
在这个例子中,我有两种不同类型的数据(一种是餐厅的菜单,另一种是花店的鲜花),它们可以有不同的成员(例如,菜单有价格和成分,花店的数据有花名和描述、数量和/或价格等...),并且可以扩展此“客户”样本。
我应该如何为这种类型的应用程序建模?我应该使用什么样的数据库模式来存储身份不明的和各种类型的数据?我的服务器和客户端应用程序应该如何相互通信?最重要的是客户端应该如何获取广播的数据类型(来自泛型)?