什么是没有字段的类?我是编程Java的初学者,我正在尝试理解和学习类,所以我有以下类"DalUser",它没有字段,只有方法,比如名为Dal的文件夹中的validateSession:
import com.app.Be.BeUser;
public class DalUser{
public BeUser validateSession(String user, String password)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我有一个BeUser类,它有字段user和password,位于另一个名为Be的文件夹或包中.这是一个特殊类型的类,或者是一个普通的类,尽管没有任何字段?
这些被称为辅助类或实用程序类,尽管这些方法通常被声明为静态.例子包括java.util.Arrays和java.util.stream.StreamSupport.通常,它们可能具有复数名称(例如,Widget可能会调用与对象一起使用的辅助类Widgets.
没有字段的类叫什么?
1没有通用名称:
没有字段的类没有明确的状态,但是严格来说,每个Java对象都有与其互斥体相关联的状态。因此,称它们为“无状态类”有点麻烦。
没有字段的类 可能是 “帮助程序类”,但是缺少字段既不是必要条件也不是充分条件。
没有状态的实例也是不可变的,因此您可以将没有字段的类称为“不可变的类”……尽管锁定用例也适用于此。
助手类和无状态类之间的另一个区别是该类是否设计为实例化。辅助类(通常使用)由static方法组成,并且没有实例化。(实例无用)。通常将无状态类设计为实例化,然后传递给其他类,这些类实际上将在实例上进行方法调用。例如作为“政策对象”。
然后是“基类”用例的一个子案例,其中在基类中没有字段。(在那种情况下,将类称为“无状态”会产生误导,因为子类中通常存在状态。)
简而言之,您需要检查该类以及如何实际使用它来确定最适用于哪个标签(或多个标签)。
在您的特定示例中,最好将代码描述为无状态类。这是因为它被设计为在不同的上下文中实例化和传递,但是功能不依赖于对象本身的任何状态。
以下是一些其他示例,以说明为什么对此没有简单的答案。
1)这是一个帮助程序类,但是它有一个(静态)字段。
public class Plumbing {
private static nosTapsFixed;
private Plumbing() { }
public class fixTap(Tap t) {
// fix 't'
}
}
Run Code Online (Sandbox Code Playgroud)
2)这是基类。它没有字段,但是显然不打算用作帮助程序类。
public abstract class Tradesman {
// no fields
public abstract Invoice issueInvoice();
}
Run Code Online (Sandbox Code Playgroud)
3)这是对没有字段(java.lang.Object)的类的使用,这显然不是“帮手”。
final Object myLock = new Object();
...
synchronized (myLock) {
...
}
Run Code Online (Sandbox Code Playgroud)
4)这是没有字段但不是帮助者的类的另一个示例。
public enum Agreement {
YES, NO
}
Run Code Online (Sandbox Code Playgroud)
1-但是,如果您真的想要一个名字,那么“ villein class”怎么样。Villeins没有任何领域....