这个是我看到的一个人的问题,没有得到很好的回答。希望大牛帮忙想想。谢过!!!
比如有两个类:
class A{
}
class B{
public static A createA();
}
类A不能直接实例化,如 A a = new A(); 禁止象上面直接实例化,
而必须通过B的方法来创建A,如: A a = B.createA();
就是说:
A a = new A(); //不允许这样直接实例化
A a = B.createA(); //只能通过B来创建A
我这样做是有用途的,
因为A是通过代码生成器生成的,生成之后,A就不能再改了,
如果要改,只能通过B来改,比如B创建A对象,并初始化A的一些属性,
也许我的思路不对,不知道大家有没有更好的
解决方法?
比如我生成数据对象的增删改查方法,生成后就不能手工去改它,
只能通过代码生成器重新生成。
但如果生成的代码不满足业务,需要增加功能时,我就通过B类来扩展A的功能,
然后调用A时,必须通过B来创建A,避免不经过B的初始化就调用A.这个非常类似于工厂模式,但工厂模式通过反射,我又不想反射,反射影响效率,而且代码难写
主要是想问一下,如何实现这样的功能,A类是自动生成的,不能手工去改,如果要扩展功能,只能通过别的方式去扩展,而且外面要调用A,必须是扩展之后的A.