的做法我有一个叫'documentsection'的类,它定义了稍后在HTML中组装的文档的一部分。其中包含属性,以及哪些值是必需的(或有效的)相互依赖。例如:正确的OOP类逻辑的逻辑
a)有一个名为'section type'的枚举可以是'view'(在这种情况下,另一个名为'content'的属性包含要读入的文件的路径/文件名)。或者它可以是“文本”,其中“内容”属性文本本身被放置在文档中。
b)另一个名为'Action'的枚举类型可以是'append','prepend'或'replacebytag'类型。在最后一种情况下,另一个属性变得相关,称为“tagtoreplace”。如果我们添加/预先添加,则此tagtoreplace属性可以为空。
表示这种相互依赖关系的最佳实践方式是什么?有几种方法我能想到的,其中没有一个美容臭气:
当调用“生成文档”的方法,经过属性,以确保它们符合这一逻辑。
将检查置于get/set方法中。与此相关的一个问题是,当我将节类型设置为“查看”时,我可能不会将“内容”属性设置为之后的一行或多行 - 因此您无法拒绝在此时设置它的请求。
以某种方式使用不同的属性来划分用途 - 例如上面第一个示例中的'content'不应该用于一种情况下的文件路径和另一种情况下的一堆HTML内容。这对我来说并不适合,但每个人都有不同的属性似乎过分。
继承子类,每个子类都具有不同的额外所需属性集。由于节类型和动作类型可以有各种组合,所以我想不出一种优雅的方式来将所有这些逻辑都烧成这种结构。但我不是OOP大师!
有关最佳方法的任何想法?
谢谢!
我认为有一个属性,它的含义取决于另一个不闻的权利。 – svick
我同意 - 问题是,什么是最好的实践方式来实现b)项的功能/在需求)和? – Glinkot