我有两个课程A
和B
。
我如何确保我的软件中没有其他地方(除了A类)被B级称为或被引用?
我想在B
内写一课A
,但我并不特别喜欢。
我可以这样做:检查谁调用了B类的方法,如果它不是A类,那么忽略它?
答案 0 :(得分:4)
限制访问的唯一方法是通过某种访问修饰符。
public class A {
private static class B {
}
}
但是你说你不想要嵌套或内部类。
另一种方法是为这两个类创建一个单独的包,并使B
仅对包可见。 (这是否可以接受取决于您的具体情况。)
<强> A.java 强>
package ab;
public class A {
}
<强> B.java 强>
package ab;
class B {
}
此处,B
具有默认值(有时也称为“包私有”或“包受保护”)可见性。它的可见性仅限于包装内。
答案 1 :(得分:0)
你可以在B类中编写你想要的方法,然后在A类中编写一个方法,将B类的实例作为一个argumment,并在参数上调用第二个方法。
但这非常难看。
答案 2 :(得分:0)
如果要限制对特定客户端的访问,则应将B类编写为内部类(您不喜欢的方式)。
实际上,如果它不作为一个独立的功能模块存在,我将避免编写一个类,这是由许多其他模块调用的。其中唯一的一点是语义上组织数据方案。
我希望我帮忙!