没有字段的类是否有特殊名称?

lum*_*xel 5 java class

什么是没有字段的类?我是编程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的文件夹或包中.这是一个特殊类型的类,或者是一个普通的类,尽管没有任何字段?

ζ--*_*ζ-- 6

这些被称为辅助类实用程序类,尽管这些方法通常被声明为静态.例子包括java.util.Arraysjava.util.stream.StreamSupport.通常,它们可能具有复数名称(例如,Widget可能会调用与对象一起使用的辅助类Widgets.


Ste*_*n C 5

没有字段的类叫什么?

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没有任何领域....