【发布时间】:2010-11-26 03:35:00
【问题描述】:
我一直在研究一些面向对象的概念,比如设计模式、干净的代码和其他一些东西,但我仍然对如何进行有一些疑问。例如,让我们看看我的例子。
我有一个 Person 类,它是一个模型。我想为一个人添加一些验证,例如检查年龄是否与出生日期一致,并检查姓名是否包含有效字符。
我有两种方法,但我不知道应该使用哪一种。
方法一: 我创建了一个名为:
class ValidatePerson {}
并且该类具有方法:“validateAge()”和“validateName()”,并且我需要的每个验证都必须实现一个新方法。
方法二: 我创建了一个抽象类,名为: ValidatePerson {} 将有一些用于所有验证的通用方法,而我将拥有:
class ValidatePersonAge extends ValidatePerson { validate();}
class ValidatePersonName extends ValidatePerson {validate();}
我想选择方法二,因为我必须添加的每个新验证规则都是一个新类,不会影响其他类。就像,如果我需要更改新规则所需的 commum 方法中的某些内容,我可以覆盖它。在第一种方法中,我必须添加另一个方法,然后创建另一个方法或更改已经为其他方法工作的方法,这可能会导致崩溃。
问题是我对这一切有点困惑,因为我是编程新手,我希望看到一些关于它的帮助和解释。我还读到过课程应该关闭以进行更改但打开以进行扩展(或类似的东西)。
【问题讨论】:
-
不清楚你在这里问什么。您究竟在寻求什么帮助?
标签: design-patterns class