所以我有一个类A.它定义了很多的行为(方法),但也留下很多的子类来实现。这个类永远不会有一个实例。这只是要定义所有子类通用的行为。 要扩展A的子类(A1,A2,A3等)都将是单例。我不希望这些子类有多个实例。从抽象类继承的静态类?
那么明显的方式做这将是创建一个抽象类A,然后静态类A1,A2,A3,扩展A.
但很显然,这不是在C#中允许的。我假设有一个很好的理由。微软的人可能比我更了解更多关于面向对象的软件设计。 但我只是需要一些帮助,找出为什么这个设计是“穷”,什么会是一个替代更好的设计。
我正在写使用WCF一个RESTful API。有一堆数据库表,这个服务将在其上执行CRUD操作。有很多代码对于所有表格都是通用的,并且很多代码将会针对每个表格。而且,在任何给定时间只能在桌子上执行一个操作。
所以我想我可以有一个抽象类TableHandler
。然后它的多个扩展如TableAHandler
,TableBHandler
等。因为我只想要这些子类的一个实例,所以我想让它们成为静态的。
这是不允许的,因为继承是关于创建相关的对象类,而且你根本没有用静态类创建任何对象。告诉我们你想要解决什么现实世界的问题,我们会看看我们是否可以提出解决方案。 – 2015-02-06 21:38:38
@RobertHarvey我添加了一些关于我试图解决的问题的信息。谢谢。 – AyushISM 2015-02-06 21:55:07
使用[工厂方法](http://en.wikipedia.org/wiki/Factory_method_pattern)模式。如果你喜欢,使工厂方法单例服务的对象。 – 2015-02-06 21:55:53