一个属性不同的Inherated类

时间:2018-02-06 08:19:51

标签: c# oop inheritance

我有一个如下所示的域模型类:

Domain model

两个实现相当可观:

1) Letter类指定邮件是一个字母,其子项指定字母的类型。类 IntraOrganization 类与 InterOrganization 之间的唯一区别是类型(在Letter类中)和发件人(在Message类中)。

Letter类中的类型可以是以下枚举之一:

enum LetterType {
    IntraOrganization = 1,
    InterOrganization = 2
}

我可以在构造函数中设置每个类的类型,如:

class IntraOrganization : Letter {
    public IntraOrganization() {
        this.Type = LetterType.IntraOrganization;
    }
}

2) 但另一项实施相当可观。如果没有从Letter继承类,并且每个类的类型都在构造函数中设置,如:

// Intra organizational
Letter intreOrgLetter = new Letter(LetterType.IntraOrganization);

// Inter organizational
Letter interOrgLetter = new Letter(LetterType.InterOrganization);

哪种设计更好?

1 个答案:

答案 0 :(得分:0)

我想说使用工厂模式来确定对象是应该作为一种类型还是另一种类型,并制作两个类InterOrganization和IntraOrganization,它们都从字母继承。

完成解决方案,你有能力做任何你想要的事情,没有任何限制。如果没有关于整体设计的更多信息,我可以提出最佳建议。

因为您不应该将类型添加到已经是类型的类中?你为什么这样?你的类型已经确定。