【发布时间】:2011-07-23 06:54:02
【问题描述】:
这可能是重复的,但因为我没有看到任何希望它不是的东西。基本上,我从来没有见过一个好的经验法则,用于将一块代码拆分为单独的方法和对象。有没有人有任何他们认为行之有效的好规则?
【问题讨论】:
这可能是重复的,但因为我没有看到任何希望它不是的东西。基本上,我从来没有见过一个好的经验法则,用于将一块代码拆分为单独的方法和对象。有没有人有任何他们认为行之有效的好规则?
【问题讨论】:
经验法则是这样的:
问:我应该把它分成方法和对象吗?
答:是的。
【讨论】:
从 OO 的角度来看,所有代码都应该写成对象和方法。 OOP 的货币是objects。现在,如果你有一个很大的类并且想知道如何分解它,因为它违反了单一职责,经验法则是封装变化的内容。
【讨论】:
如果方法不适合页面,则它太大了。 :-)
这不是使用非常小的字体或使用非常大的显示器的借口
去阅读;
虽然他们谈论如何处理你已经拥有的东西,但如果你阅读它们并从中学习,你可以避免一开始就创建滞后代码!
【讨论】:
我发现this article(butunclebob.com,S.O.L.I.D. 面向 OOP 的原则)对于设计类的边界和层次结构很有启发性。尽管这主要是常识,但在您通过体验对设计的“好”感觉之前,为您想要实现的目标命名会有所帮助。
【讨论】:
免责声明:我不反对 OOP,恰恰相反。以下仅代表个人意见
总的来说,我同意其他答案,并且每当我“觉得”有必要时,我也会尝试将代码分解为方法。
尽管如此,OOP 是一种方法,如果您想调用它,则是一种工具。虽然采用 OOP 技术非常强大,但在某些情况下,其他方法更适合。
一个简单的
echo "Hello World!"
可能比
更快/更好/更容易class HelloWorld {
private String text = null;
public HelloWorld() {
this.text = "Hello World";
}
public void print() {
echo this.text;
}
}
(比较夸张的例子hello world in pattern)
【讨论】:
一个类应该被设计成有一个主要目的。 IE。保持类简单明了。
在决定方法时,您应该牢记两件事。专注于类的清晰接口,并创建可测试的方法。
【讨论】: