这是一个非常基本的一般性问题,但非常简单。我知道您创建了一个类来创建对象,但我想知道这是否是您需要创建一个单独的类的唯一原因?我问的原因是因为在我正在学习的一门课程中,所有学生都展示了我们都必须单独构建的程序的设计。许多学生有 5-10 节课,而我只有 2 节课。这两种选择似乎都很好。
如果这是一个主观问题,那么编写程序最被接受的方式是什么。行业领导者对添加可能并非 100% 必要的额外课程有何看法?
这是一个非常基本的一般性问题,但非常简单。我知道您创建了一个类来创建对象,但我想知道这是否是您需要创建一个单独的类的唯一原因?我问的原因是因为在我正在学习的一门课程中,所有学生都展示了我们都必须单独构建的程序的设计。许多学生有 5-10 节课,而我只有 2 节课。这两种选择似乎都很好。
如果这是一个主观问题,那么编写程序最被接受的方式是什么。行业领导者对添加可能并非 100% 必要的额外课程有何看法?
以下是一些指导方针:
单一职责原则基本上是说每个类应该只做一件事。如果有一个类可以处理两个或更多事情,请将其拆分为多个类。
所以现在检查你的类,是否有任何类可以做很多事情,比如获取用户输入、进行计算和打印结果?如果是这种情况,您可能希望将其拆分为多个类。
OOP 中的抽象非常重要。它基本上是将现实世界的事物变成类或接口的过程。例如,如果您正在做一个计算应用程序,您将有一个Calculator
进行实际计算的类。您还将拥有一个CalculatorWindow
管理计算器窗口的类,例如监听按钮事件。然后这个类可以给用户输入一个Calculator
对象并让它计算结果。
那里有很多设计模式。通过查看这些设计模式,您可以了解类如何交互,并希望您知道何时创建一个新类。
对此没有一刀切的答案。
如果这是一个主观问题,那么编写程序最被接受的方式是什么。
显然,这个问题也是主观的。(您不希望我们为您进行调查吗?)
行业领导者对添加可能并非 100% 必要的额外课程有何看法?
你是说像比尔·盖茨、拉里·埃里森?
他们可能什么都不会说。
当然,有些人会站在他们的肥皂盒上,以极大的权威告诉你 XYZ 是“最佳实践”之类的。但大多数时候,这些声明是基于(充其量)轶事证据/个人经验。换句话说,它们实际上是伪装成事实的观点。
底线:没有一个正确的答案,所以你学习:
(不“工作”的两个极端是当类太细以至于你把所有的时间都花在编写和阅读样板上,或者类太大太复杂以至于你不再理解它们。)
不同的类用于执行不同的任务。这减少了代码重复并增加了代码重用。这可以帮助您按照设计模式轻松解决一些关键问题。这是一个很好的做法。
这是一个简单的例子。
对数据进行排序。
//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 循环对两个不同的数组进行排序。现在看一个有多个类的例子
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;
}
}
上面的例子是非常简单的例子,但是当你需要使用多个类做大项目时会减少你的编码时间。
假设当你在一个大项目中
您将编写一个类来控制数据库查询,一个服务类来处理该数据库类的其他操作,一个控制器类来控制一切等。