首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

如何屏蔽实现类,只暴露接口出去

2012-12-19 
怎么屏蔽实现类,只暴露接口出去public class A implements B,C{ public A(){ } public void funB() { } pu

怎么屏蔽实现类,只暴露接口出去

public class A implements B,C{
 public A(){
 }
 public void funB()
 {
 }
 public void funC()
 {
 }
}


public interface B{
 public void funB();
}


public interface C{
 public void funC();
}
public Factory
{
  public staic B getBInstance()
  {
     return new A();
  }
  ......
}


我如果只想给外面接口B或者C,但是B,C的实现对象都需要new A()来做,通过Factory类,来return 对应的接口对象,如果A不设置成public 那么B,C的实现对象都生成不了,但是如果设置成public 那么,直接生成A a = new A();这样B,C的方法又可以同时使用了,用接口的意义就没有了。


我该怎么做才能只暴露接口出去,把实现类屏蔽,让用户无法调用。

[最优解释]
类A和Factory放到同一个包里,另外,把class A的public删除。
[其他解释]
貌似用内部类可以解决你的问题
[其他解释]
把A做为内部类,放到Factory的类里面。这样当外部通过Factory初始化类B或C时,就可以返回一个内部类A的对象了。 
[其他解释]
谢谢各位,2楼的方法可行

热点排行
Bad Request.