微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在类之间交换数据-DI,IoC

如何解决在类之间交换数据-DI,IoC

| 我的设置是:
class ModelA { ... }
interface IModelARetriever {  IEnumerable<ModelA> Getobjects(); }

class ModelB { ... }
class DomainObject { List<ModelB> ModelBList; }
可以使用来自“ 2”个对象列表的操纵数据来附加“ 1”,但不是必须的。我应该把逻辑放在哪里? 我应该在
DomainObject
中创建需要
IEnumerable<ModelA>
方法吗?这意味着更改每个可以创建ModelB对象的数据源的“ 3”。 我应该创建一个单独的
interface ModelBFactory
并将其扩展吗?这听起来最好,但只需要专家的意见。     

解决方法

        如果我已正确阅读该问题,则可以将
ModelA
对象转换为
ModelB
对象。我想说的是在
ModelA
上需要
ToModelB()
方法。如果转换很简单(例如,仅复制
ModelA
属性值的子集),我将直接在
ToModelB()
中实现它;如果它更复杂(例如,某些属性值的有条件复制,值的组合,算术等),我会有一个
ModelAConverter
类来完成这项工作。 然后将您提到的
AddModelAObjects()
方法添加到
DomainObject
中。然后,您有两种选择将
ModelA
转换为
ModelB
的方式-将
ModelAConverter
注入
DomainObject
\的构造函数并在
AddModelAObjects()
中进行转换,或者转换成
ModelA
\的构造函数并在
ToModelB()
中进行转换。我可能会选择后者,但这取决于对象还必须做什么。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。