关于面向对象的设计最佳做法分成班吗?

问题描述

| 我正在为面试准备一个稍微复杂的难题。我对设计的最佳实践并不了解。 我想编写一个大类,该类首先解决手头的问题。然后,我想将其拆分为任意多个子类。 这在行业中被认为是构建良好设计的好方法吗?     

解决方法

不,这不对。 设计对象应该是您的首要任务之一,而不是您的最后任务。 一个好的面向对象的开发人员将研究问题,确定需要创建哪些对象,着手创建这些对象,然后将它们编织在一起以解决更大的问题。 如果您试图使一个巨型类独自处理所有工作,那么您将得到紧密耦合的代码,这些代码无法分解为类...但是如果您已经正确地预先设计了代码。     ,我将尝试以可能的方式回答。 首先将您的问题表达成一些您想解决的句子。从这些句子中,名词是您的类和变量。动词是您的方法。从这一点开始,您可以开始编写代码的第一个版本     ,在编写用于生产的代码时,我的经验是实际实践介于中间。在设计系统时,请提供您认为需要的类(请参阅Skyzer的答案以获取有关分解问题的好方法)。在实际实施解决方案时,您可能会发现某些对象变得太大了。做得太多。到那时,您可以再看一下设计,看看是否可以将对象分解为几个较小的对象。每个对象都应负责一个“事物”,但是随着给定的“事物”变得更加复杂,什么是“事物”的定义可能会随着时间而改变。 与此类似的是方法/命令的编写。每个命令应该做一件事,并且做得很好。对我来说,这意味着为该命令编写测试很容易,因为这些测试可以非常清楚地定义该命令的功能。当命令的执行量变得太大时(大量的逻辑分支(如if引起越来越多的测试就是一个很好的指示)),请将命令分解为多个较小的可以分别测试的分支。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...