Design patterns 这个有设计模式吗
我有以下领域,一份文件档案:Design patterns 这个有设计模式吗,design-patterns,Design Patterns,我有以下领域,一份文件档案: -Dossier(Name,Documents[]) -Document(Name) 现在有一个新的要求,要求一些有主题的档案,每个主题都有文档,因此新的领域如下: -Dossier(Name,Subjects[]) -Subject(Number,Documents[]) -Document(Name) 对于这几个档案(7%),我必须将一个简单的设计更改为一个更复杂的设计。我的问题是:我可以使用一种设计模式或任何想法来支持主题,但避免更改初始域。您只需保留从档
-Dossier(Name,Documents[])
-Document(Name)
现在有一个新的要求,要求一些有主题的档案,每个主题都有文档,因此新的领域如下:
-Dossier(Name,Subjects[])
-Subject(Number,Documents[])
-Document(Name)
对于这几个档案(7%),我必须将一个简单的设计更改为一个更复杂的设计。我的问题是:我可以使用一种设计模式或任何想法来支持主题,但避免更改初始域。您只需保留从档案到主题集合和文档集合的引用/链接(因此它将是-档案(名称、文档[],主题[]))并在DB/编程语言级别实现一些验证规则,如:当档案中的主题集合不为空时,该档案不能有任何文档(文档集合必须为空)。通过这种方式,您只需添加更改模型,而无需实际修改或删除任何现有内容 或者,您可以创建一个基类Dossier,它有名称和两个子类:DossierWithSubject(包含主题集合)和DossierWithoutSubject(包含文档集合),后者正是您目前所拥有的。所以,只要把你当前的档案当作没有主题的档案就行了
希望这一切都能有所帮助。我想您正在寻找合适的人选
<>你也可以在这里找到有用的。 选择模式时有很多事情要考虑。 如果设计根据档案文件外部的上下文动态更改,则符合委托模式()
如果在“构造”或“初始化”阶段设置,可以考虑<强> pIMPL <强>(或>强>装饰器< /强>()模式
或者也许你需要一些不同的东西 选择的解决方案应该取决于您需要解决的确切问题。 两条简单规则是: