首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么每个文件只有一个类

每个文件只有一个类是一种编程规范,被称为单一职责原则(Single Responsibility Principle,SRP)。它是面向对象编程(Object-Oriented Programming,OOP)中的一个重要概念。

单一职责原则指导开发人员将一个类的功能限定在一个明确的范围内,即一个类应该只有一个引起它变化的原因。这样做的好处有以下几点:

  1. 高内聚性(High Cohesion):每个类只负责一项具体的职责,使得类的设计更加简洁、清晰,易于理解和维护。
  2. 低耦合性(Low Coupling):不同的职责被分离到不同的类中,减少了类之间的依赖关系,提高了代码的可复用性和可测试性。
  3. 易于扩展和修改:当需求变化时,只需要修改与该职责相关的类,不会影响到其他功能,降低了代码的风险。
  4. 提高代码的可读性和可维护性:每个类只关注一个职责,使得代码更加简洁、易于理解和维护。

尽管每个文件只有一个类是一种良好的编程实践,但并不是绝对的规则。在某些特定情况下,一个文件可能包含多个相关联的类,例如一些简单的数据结构或者一些紧密耦合的辅助类。但是,应该尽量遵循单一职责原则,将类的功能划分清晰,以提高代码的质量和可维护性。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java文件中public 类名要和文件名保持一致

一个Java文件可以有多个类作为内部类/Adapter类/其它类,但是只能有一个public类,且类名必须和文件名一致。这是这类语言的一个不好的地方。 在现实情况中,经常有一些很小的类由几个类共同需要,因此无法作为内部类,而且接口关系必须设置为public,这样就导致了大量很小的.Java程序,每个都只有几百字节。 这类语言的另一个问题是一个类的所有实现的方法都必须包含在同一个文件中。在swing应用程序中,经常导致长达一两百K字节的源程序,行数达到三四千行,搞得JBuilder奇慢无比。 一个 .java 文件,可以有多个类,但是文件名只能有一个,用哪一个类名来充当文件名呢?其实文件名是无所谓的,因为将来用 javac 进行编译的时候,最终会生成多个 .class 文件,每一个类对应个 .class 文件。运行时只要运行对应的 .class 文件就可以了,这时 .java 文件就显得没什么用了( 运行时不需要 ),那还管它叫什么名字。 但是当你的类被 public 修饰时,此时文件名必须和该类保持一致(例如 public class A{} 只能放在 A.java 文件中,不然在用 javac 编译时会提示错误:类 A 是公共的,应在名为 A.java 的文件中声明)。也就是说在同一个 .java 文件中,不应该出现2个或2个以上的 public class 。 如果有一个public class类,就应该让文件名和此类名相同;那如果没有呢,即所有的 class 都没有修饰符,那么可以给该文件随便起名字,甚至可以不和任意一个类同名,哪怕是汉字名称都可以,但是后缀还是要有.java 的 。 注:有很多初学者 ( 我也是 ) 可能会认为文件名应该也和 main 方法所在类有关系,其实不然。main 方法只是程序的一个入口,老师讲“一个程序只能有一个入口”,好象是在说只能有一个 main 方法,其实,只要你高兴,就可以在所有类里都写上 main 方法,给程序提供N多个入口,但是最后你运行程序的时候也只能从其中的一个入口进去,这就是 main 的作用( 程序入口 )。(这也就是为什么你会发现,程序员在做单元测试时,会往自己做的很多类里面添加 main 方法,因为他要为自己做的东西添加运行入口,从而能方便测试。)

02

springboot系列学习(九):yml配置文件里面到底可以写什么,追溯原理,这个里面就可以看到到底可以写什么

之前已经讲过,这个自动的配置和spring.properties 这个文件有一定的关系。这个spring.properties里面就是一些类的路径,有很多的路径,一个路径对应一个类,只要项目启动,加载spring.properties这个文件,走里面的路径,就可以找到对应的类,这样,这个类就加载到了项目里面,但是不是全部的路径下面的类都可以加载到项目里面,因为路径里面的类上面有一个注解,这个注解会判断你有没有添加对应的依赖,就是在pom文件里面有没有加对应的依赖。判断加了,那么就会将这个类自动装配到项目里面。

02
领券