2011-05-25 59 views

回答

4

不,它不是。

设计你的对象应该是你的首要任务之一,而不是你的最后一个。

一个好的面向对象的开发人员会着眼于一个问题,决定创建哪些对象,创建这些对象,然后将它们编织在一起以解决更大的问题。

如果你试图让一个巨人类自己处理所有的工作,你将得到非常紧密耦合的代码,这些代码不能被分解成类......但可能已经如果你预先设计好了代码。

+1

不一定。如果赋值确实是一些像招聘问题那样的谜题,那么以不妨碍思维过程的方式(伪代码,python等)计算出关键算法,然后将该原型转换为表现良好,看起来不错等等。担心OO设计可能不是最有效的第一步。 – 2011-05-25 13:51:31

+0

@ scompt.com - 如果OP在访问中被问到一个算法问题,我不会期望他们担心使OO适当(因为大多数算法问题都集中在算法上)。这听起来像是一个设计问题。 – 2011-05-25 13:52:47

+0

面试问题测试逻辑和良好的面向对象的设计实践。这个难题是基于“约翰康威的生命游戏”。我有逻辑想通了。 – anon341 2011-05-25 13:55:22

0

我会尝试用可能的方法来回答。 首先将你的问题写入你想解决的一些句子中。从这些句子名词是你的类和变量。动词是你的方法。从这一点开始,您可以开始编写代码的第一个版本

0

在编写生产代码时,我的经验是,实际操作在中间的某处。在设计系统时,想出您认为需要的课程(请参阅Skyzer的回答,以寻求解决问题的好方法)。当你实际执行你的解决方案时,你可能会遇到一些对象变得太大的问题。做得太多。此时,您可以再看一下设计,看看是否可以将物体分解成几个较小的物体。每个对象都应该负责一件“事物”,但是随着时间的推移,对于一件“事物”的定义会随着一个给定的“事物”变得更加复杂而发生变化。

类似于这个方法/命令的写作。每个命令都应该做一件事,并做好。对我而言,这意味着为该命令编写测试很容易,因为测试可以非常清楚地定义命令的功能。当命令执行的内容太多时(大量的逻辑分支如if引起越来越多的测试是一个很好的指示),将命令分成多个小的分支,每个分支都可以被测试。