首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道何时需要添加单独的类?

如何知道何时需要添加单独的类?
EN

Stack Overflow用户
提问于 2016-12-12 15:31:26
回答 3查看 518关注 0票数 1

这是一个非常基本的一般性问题,但它非常简单。我知道你创建一个类来创建对象,但是我想知道这是不是你需要创建一个单独类的唯一原因?我问这个问题的原因是,在我正在学习的一门课程中,所有的学生都展示了一个我们都必须独立构建的程序的设计。许多学生有5-10节课,而我只有2节课。这两种选择似乎都很好用。

如果这是一个主观的问题,那么什么是最被接受的编写程序的方法。业界领袖对添加可能不是100%必要的额外类有何看法?

EN

回答 3

Stack Overflow用户

发布于 2016-12-12 15:47:03

以下是一些指导原则:

单一责任原则

单一责任原则基本上是说每个类应该只做一件事。如果有一个类处理两个或更多的事情,则将其拆分成多个类。

那么现在检查一下你的类,有没有类可以做很多事情,比如获取用户输入,做计算,打印结果?如果是这样的话,你可能想把它分成多个类。

抽象

OOP中的抽象是非常重要的。它基本上是将现实世界中的东西变成类或接口的过程。例如,如果您正在做一个计算应用程序,那么您将拥有一个执行实际计算的Calculator类。您还将拥有一个管理计算器窗口的CalculatorWindow类,比如侦听按钮事件。然后,这个类可以向Calculator对象提供用户输入,并让它计算结果。

设计模式

有很多设计模式可供选择。通过查看这些设计模式,您可以了解类是如何交互的,并有望了解何时创建一个新类。

票数 2
EN

Stack Overflow用户

发布于 2016-12-12 15:47:53

对于这个问题,没有万能的答案。

如果这是一个主观的问题,那么什么是最被接受的编写程序的方法。

显然,这个问题也是主观的。(你不会希望我们为你做个调查吧?)

业界领袖对添加可能不完全是100%必要的额外类有何看法?

你是说比尔·盖茨,拉里·埃里森?

他们可能什么都没说。

当然,有些人会站在他们的肥皂盒上,非常权威地告诉你,X Y Z是“最佳实践”或诸如此类的东西。但大多数时候,这些声明是基于(充其量)轶事证据/个人经验。换句话说,它们实际上是伪装成事实的观点。

底线:没有唯一的正确答案,所以你会学到:

  • 什么是最适合你(和你的团队)的,
  • 它真的不值得太多担心……如果你正在做的事情“对你有效”。

(无法“工作”的两个极端是:类的粒度太细,以至于您将所有时间都花在编写和阅读样板文件上,或者类太大、太复杂,以至于您无法再理解它们。)

票数 1
EN

Stack Overflow用户

发布于 2016-12-12 15:50:30

不同的类用于完成不同的任务。这个减少了代码的重复使用和增加了代码的重用。这有助于您遵循设计模式轻松地解决一些关键问题。这是一个很好的实践。

这里有一个简单的例子。

对数据进行排序。

代码语言:javascript
复制
//Without using multiple class
public class A{
  public static void main(String[] args){
     int array[] = {1,6,1,8,34,5};
     for(int i=0; i< array.length; i++){
        //your procedure to sort the array
     }
     //other operations;
     //Now you need to sort another new array (new_array[])
     int new_array[] = {1,6,1,8,34,5};
     for(int i=0; i< new_array.length; i++){
        //your procedure to sort the new_array
     }
  }
}

在本例中,我们使用了两个for循环来对两个不同的数组进行排序。现在看一个包含多个类的示例

代码语言:javascript
复制
public class A{
  public static void main(String[] args){
     int array[] = {1,6,1,8,34,5};
     
     int my_array[] = Opertaion.sortArray(array);     

     //other operations;
     //Now you need to sort another new array (new_array[])
     
     int new_array[] = {1,6,1,8,34,5};
     int my_new_array[] = Opertaion.sortArray(new_array); 
  }
}

public class Opertaion{
   public static int[] sortArray(int[] array){
     for(int i=0; i< array.length; i++){
        //your procedure to sort the array
     }
     return array;
   }
}

上面的例子是非常简单的例子,但是当你需要做大型项目时,使用多个类将会减少你的编码时间。

假设当你在一个大项目中时

您将编写一个类来控制数据库查询,一个服务类来处理该数据库类的其他操作,一个控制器类来控制一切,等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41096038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档