Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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 当创建一个类的实例从另一个类的实例读取时,该逻辑应该放在哪里?_Oop_Design Patterns - Fatal编程技术网

Oop 当创建一个类的实例从另一个类的实例读取时,该逻辑应该放在哪里?

Oop 当创建一个类的实例从另一个类的实例读取时,该逻辑应该放在哪里?,oop,design-patterns,Oop,Design Patterns,假设我正在使用两个图形模型,MyNode和MyPath(极度简化) 类MyNode{ 身份证号码:, } 类MyPath{ 路径:字符串, } 要创建MyPath对象,我有两个选项:要么创建仅包含MyNode的路径,要么创建连接其他两个MyNode的路径: 函数createRootMyPath(rootMyNode){ 返回新的MyPath({path:rootMyNode.id}) } 函数createConnectionMyPath(myNode1、myNode2){ 返回新的MyPa

假设我正在使用两个图形模型,
MyNode
MyPath
(极度简化)

类MyNode{
身份证号码:,
}
类MyPath{
路径:字符串,
}
要创建MyPath对象,我有两个选项:要么创建仅包含MyNode的路径,要么创建连接其他两个MyNode的路径:

函数createRootMyPath(rootMyNode){
返回新的MyPath({path:rootMyNode.id})
}
函数createConnectionMyPath(myNode1、myNode2){
返回新的MyPath({path:myNode1.id+'.+myNode2.id})
}
虽然MyNode和MyPath实例形成了一个图形并具有非常密切的关系,但它们也可以单独用作自己的模型

在编写这两个MyPath创建方法时,我应该将它们放在哪里


它们是否属于MyPath类,尽管它们与MyNode类有很强的依赖关系?我应该将这两个方法移到工厂类中吗?或者我应该做一些完全不同的事情吗?

这些是获取MyPath对象的各种方法,因此我认为它们应该存储在MyPath类中。