设计模式:我如何处理不同类型的组织?

时间:2013-06-25 03:10:10

标签: design-patterns web database-schema

说,我有不同类型的Organization,我正在尝试使用Strategy Pattern

以下是我的组织的样子:

Class Organization {
    public String id;
    public String name;
    public String description;
    // Do something common.
}

由于我有不同类型的组织,并且每种组织都有自己的字段,例如:

Class School extends Organization {
    public String level;
    public String annuity;
    // Do something special for school.
}

Class Camp extends Organization {
    public String beginDate;
    public String endDate;
    // Do something special for Camp.
}

问题是: 现在我需要为他们设计一个管理面板,我不想单独管理每种类型的组织。

我想仅在页面上管理所有组织

那么,我该如何制作呢?

我应该将所有数据放入一个名为Organization的表并添加一个Type字段,还是只为不同的组织创建不同的表?

1 个答案:

答案 0 :(得分:0)

这不是战略模式的用例,因为根据某些情况你不需要任何类型的算法/行为。

您的3个不同的类看起来不属于同一类别,因为它们完全具有不同的字段。对我来说,这看起来像你需要创建不同组织的实例,你也应该知道他们的类型。

首先要弄清楚你是否能找到你们班级之间的共性。如果是,则从接口实现它们并获得工厂类,该工厂类将根据某些输入参数创建每个组织。 如果你在课堂上找不到任何共性,那么你应该将它们视为不同,因为它们彼此无关。