Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 面向对象和对象ID_Oop_Identity - Fatal编程技术网

Oop 面向对象和对象ID

Oop 面向对象和对象ID,oop,identity,Oop,Identity,我的应用程序管理水果记录。该应用程序支持不同类型的数据源。每个水果在数据源中都有一个唯一的id。无法保证数据源之间的唯一性,因为我无法控制这些ID 我已经创建了一个类FruitSourceManager{},它允许我们在我的应用程序中配置(添加/删除)不同的水果源 我还有类BasketFruitSource{} class-source{} 类TruckFruitSource{}每个类都实现 接口IFruitSource{} 我有一个 类管理器{} 它通过调用IFruitSource上的操作来提

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

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

我还有
类BasketFruitSource{}
class-source{}
类TruckFruitSource{}
每个类都实现
接口IFruitSource{}

我有一个
类管理器{}
它通过调用IFruitSource上的操作来提供对水果的CRUD操作

然后我有一个 业务层使用的
class-Fruit{}
和web服务使用的
class-FruitDTO{}

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

可以将FROUCTSOURCEID与FROUCTID连接为FROUCTDTO中使用的单个ID吗?或者我应该使用两个参数(水果源ID和水果ID)唯一地标识水果


两者之间有什么利弊吗?还是我在这里吹毛求疵?

这取决于你对水果有什么样的身份证。如果您的ID是固定长度的,理论上您可以将它们串联起来,但对于递增的数字,则绝对不能

--> 123 + 1 = 12 + 31 等等


如果你不能影响你的供应商ID,最好自己识别他们。谁知道另一个供应商将来会有什么样的奇怪id(订单号?)。

为什么会用c#和java标记?这就是项目中使用的。但是,是的,这可以适用于任何其他语言。我更新了标签。IFruitSource和水果之间的关系是什么?我将根据这些信息指导我如何管理ID的决策。一对多还是一对一?这是一个聚合。水果只属于一个IFruitSource,但与IFruitSource的生命周期无关。如果移除了一个IFruitSource怎么办?相关的水果实例继续使用空的IFruitSource?是的,供应商ID可以是任何东西。所以我想的是固定宽度的源id后跟供应商id。或者使用分隔符。供应商id是源id的另一个名称?是供应商==源