怎么扩展这个类_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 怎么扩展这个类

怎么扩展这个类

 2013/1/25 11:04:23  luckilygenius  程序员俱乐部  我要评论(0)
  • 摘要:这个是我看到的一个人的问题,没有得到很好的回答。希望大牛帮忙想想。谢过!!!比如有两个类:classA{}classB{publicstaticAcreateA();}类A不能直接实例化,如Aa=newA();禁止象上面直接实例化,而必须通过B的方法来创建A,如:Aa=B.createA();就是说:Aa=newA();//不允许这样直接实例化Aa=B.createA();//只能通过B来创建A我这样做是有用途的,因为A是通过代码生成器生成的,生成之后,A就不能再改了,如果要改,只能通过B来改
  • 标签:
这个是我看到的一个人的问题,没有得到很好的回答。希望大牛帮忙想想。谢过!!!
比如有两个类:
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.
  • 相关文章
发表评论
用户名: 匿名