2013-12-20 44 views
-1

我的应用程序管理水果记录。该应用程序支持不同类型的数据源。每个水果在数据源中都有一个唯一的ID。不保证数据源之间的唯一性,因为我无法控制这些ID。OOD和对象ID

我创建了一个class FruitSourceManager{},它允许我们在应用程序中配置(添加/删除)不同的水果源。

我也有class BasketFruitSource{} class CartFruitSource{} class TruckFruitSource{}每一个实现 interface IFruitSource{}

我有一个 class FruitManager{} 其通过在IFruitSource调用操作

提供有关水果CRUD操作,然后我有在业务层使用的 class Fruit{}以及由Web服务使用的class FruitDTO{}

该应用程序公开了一个Web服务,允许您读取或修改水果记录。 GetFruitById() UpdateFruit()

是否确定连接具有FruitId作为FruitDTO使用单个ID的FruitSourceId?还是应该使用两个参数(FruitSourceId和FruitID)来唯一标识水果?

对一个人和另一个人有没有优点和缺点?还是我在这里分开头发?

+1

为什么使用c#和java标记? –

+0

这就是项目中使用的。但是,是的,这可能适用于任何其他语言。我更新了标签。 – swbandit

+0

IFruitSource和Fruit之间的关系是什么?我会根据这些信息指导我如何管理知识产权的决定。 [Association,aggregation or composition?](http://stackoverflow.com/questions/885937/difference-between-association-aggregation-and-composition)一对多还是一对一? – ericbn

回答

0

这取决于你有什么样的水果ID。如果你的IDS是固定长度理论上你就可以将它们连接起来,但对于递增的数字绝对不是

- > 123 + 1 = 12 + 31 等..自己

更好ID他们,如果你不能影响你的供应商ID。谁知道另一个供应商将来会有什么奇怪的ID(订购号?)。

+0

是的,供应商ID可以是任何东西。所以我在想的是固定宽度的源ID跟供应商ID。或者可以使用分隔符代替。 – swbandit

+0

供应商ID是源ID的另一个名称? – ericbn

+0

是供应商==来源 – swbandit