在接口内编写类有什么用

2022-09-04 03:04:42

我在其中一个java论坛中找到了以下示例。

interface employee{
    class Role{
          public String rollname;
          public int roleId;
          public Object person;
     }
    Role getRole();
    // other methods
}

我已经执行了上面的代码片段,并且它正在成功编译。这意味着我们可以在接口中有一个类。

我的问题是,拥有这样的课程有什么用?是任何设计模式吗?


答案 1

这个代码片段已经回答了你的问题。该类由方法中的接口使用。接口的设计人员认为,此类与接口紧密耦合,因此值得在该接口中定义它,以强调该类对接口的重要性。RoleemployeegetRole()

此外,它还为类提供了语义命名空间:。然而,我第一次看到这种构造,而在其他类中定义的静态类非常普遍(用于与上述相同的目的)。employee.Role


答案 2

此处的用法与任何内部类的用法相同。它将类的作用域限制在它所属的位置。

在这种情况下,实现者认为它不适合作为顶级类,并将其放在接口中。其原因很可能是 的意图是 与 紧密耦合 。RoleemployeeRoleemployee