【发布时间】:2011-04-22 13:30:38
【问题描述】:
我想我没有正确学习的一件事是何时使用课程。对于我在学校必须做的所有事情,除非我使用 java 中的对象,否则完全不需要另一个课程。使用类有哪些好的理由和做法?
【问题讨论】:
-
你应该开始看看这个:javapractices.com/home/HomeAction.do
-
这是一个非常宽泛的问题,没有客观的答案。
我想我没有正确学习的一件事是何时使用课程。对于我在学校必须做的所有事情,除非我使用 java 中的对象,否则完全不需要另一个课程。使用类有哪些好的理由和做法?
【问题讨论】:
面向对象的编程将世界建模为将数据和行为封装在一起的软件组件。他们通过相互发送消息进行通信。
如果这很适合您的问题,那么 OOP 将起作用。
没有什么神奇的秘诀可以说“方钉,遇到方孔。”
如果您已经接受 OOP,那么 Bob Martin 的 SOLID 原则就是对象的良好开端
http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod http://blog.objectmentor.com/articles/2009/02/12/getting-a-solid-start
【讨论】:
类反映了职责。 Each class should have exactly one responsibility。因此,您将属于一个职责的所有行为和数据添加到一个类中。一种可以帮助您识别这些职责并定义必要类的方法称为CRC cards.
【讨论】:
在现实世界中,您有很多对象,它们都有不同的属性和行为。为了正确地描述所有这些类是非常有用的。所以,当你有不同的对象,它们应该以某种方式相互通信时,面向对象编程是好的。
【讨论】:
类反映了一种对象。帮助我将功能划分为类的方法是将程序中的每个概念都视为一个名词。对象有行为,它们做事,所以类应该定义它们的实例将执行的行为。
【讨论】:
把你的程序想象成一辆汽车。一辆汽车,虽然它是一台大机器,但它是由几个部件组成的。这些组件可以交互,使汽车移动。发动机需要燃油系统来获取燃油。对于马达来说,燃料如何到达那里并不重要,只要它到达那里即可。电机在其他一些组件的帮助下使车轮转动。对于轮子,电机如何工作并不重要,只要它们被电机推动即可。这使得与一群人一起创建汽车变得非常容易。只要每个人都知道所有组件将如何交互,就可以单独构建组件。
现在将您的程序想象成一辆汽车。您将构建所有组件,然后它们将一起工作以形成程序。好处之一是您可以独立开发零件。第二个优点是,使用多个类可以为您的程序提供更好的结构。不存在文件保存组件可能会覆盖某些备份组件的数据的风险,因为类可以选择它们公开哪些数据以及如何公开。
将程序划分为类的一个好方法是考虑职责。例如,在汽车中,发动机负责让车轮移动,油箱负责储存燃料,......有两种主要类型的责任:做某事和了解某事。类既可以设计为执行某些任务,也可以保存某些信息。如果您想了解更多信息,请使用“面向对象设计和掌握”一词在 Google 周围搜索一下。掌握是一组让 OO 设计更容易的规则。
【讨论】:
不变量归类所有。每当您有两个或多个变量/对象并且必须在它们之间维护一个不变量时,您就应该创建一个维护该不变量的类。
【讨论】: