在子模型存在的情况下抽象模型

时间:2014-12-22 00:03:51

标签: c# oop software-design

我在重构项目的过程中遇到了这种情况。

有一个模型类,它包含几个子模型:

public class Model
{
    public Submodel_A SM { get; set; }
    public Submodel_B SM { get; set; }
    public Submodel_C SM { get; set; }
}

public class Submodel_A { /* contains only properties */ }
public class Submodel_B { /* contains only properties */ }
public class Submodel_C { /* contains only properties */ }

现在,我需要将Model移动到单独的程序集中。为此,我希望模型能够实现一个界面,比如IModel。但是由于子模型,我在这里被卡住了:

interface IModel
{
    Submodel_A SM { get; set; }
    Submodel_B SM { get; set; }
    Submodel_C SM { get; set; }
}

显然,使用Submodel_*类本身并不是解决方案。我是否真的必须为每个子模型设置一个接口?或者,也许,以某种方式将它们隐藏在界面中会更好吗? (隐藏是一种选择,因为子模型只携带一些数据而几乎没有其他功能)。

1 个答案:

答案 0 :(得分:0)

基本上,我最终拥有了所有内容的接口,聚集在一个专用的程序集中。是的,几乎所有其他模块现在都依赖它,但到目前为止它没有带来任何麻烦......