2

有人可以帮我吗?我想将策略模式或继承/鉴别器与猫鼬及其嵌入对象一起使用。我知道猫鼬在集合上支持继承/鉴别器,但还没有找到任何嵌入式对象的解决方案。不知道如何定义模式,或者即使没有真正繁重的编码也是可能的。

这是我的代码。

源集合,其中每个源都可以有一个不同类型的传输。理想的情况是调用 Source.getTransport() 返回 HttpTransport 或 FileTransport 的实例。

[{
     _id: "1......",
     name: 'Source 1',
     enabled: true,
     transport: {
        type: 'Http',
        url: 'http://some.url' 
     } 
},{
     _id: "2......",
     name: 'Source 2',
     enabled: true,
     transport: {
        type: 'File',
        path: '/some/path/here' 
     } 
}]

我什至不确定 mongoose 文档(如 HttpTransport / FileTransport)是否应该包含方法 read() 并完成所有繁重的工作,或者只是将其保留为配置对象并使用外部工厂来创建传递此配置对象的传输实例.

var transport = TransportFactory.create(source.getTransport());

或者我完全错了,还有其他我可以使用的模式?

感谢您的任何帮助。

4

0 回答 0