2012-03-15 78 views
0

因此,假设我有一个名为“程序”的类,其中包含我将只创建一个实例的整个程序。使用继承来将一个类“拆分”为多个文件可以吗?

现在这个类包含很多购物功能(方法等)的很多(一半的代码)。

可以用上述一半代码创建一个名为“ProgramWithoutShopping”的类,然后将我的购物相关代码放入名为“Program”的类中,扩展“ProgramWithoutShopping”,而不用任何ProgrammWithoutShopping其他目的?

我的目标是通过分离的功能和更小的文件来更好地浏览。

有人有一个实际使用这种策略的大项目的例子吗? PS:如果你要写“不要使用类”,你可能会认为我的程序运行在一个需要它作为类的框架中。

+5

“所以假设我有一个类名为”程序“,其中包含我的整个程序,我将只创建一个实例。”这就是问题。你还没有真正掌握什么课程。它们不是代码的容器;他们是数据类型的描述。您创建它们是为了构建数据并将操作重新组织为对象的“行为”。事实上,以适当的方式切断事情需要有关具体情况的更多信息。一般来说,这是一种艺术,而不是可以解释为一个单一的答案。 – 2012-03-15 03:17:26

+0

你使用什么语言? .Net语言通常有一个像“partial”这样的关键字,可以让你在多个文件中拆分一个类而不会滥用继承。 – 2012-03-15 03:19:24

+0

根据您使用的语言,您可能能够将一个类拆分为多个文件,例如在C#中使用“partial”类。这可以让你在不需要继承子类的情况下进行文件分离。另外,@KarlKnechtel在上面说过... – joshuahealy 2012-03-15 03:20:42

回答

1

你使用什么语言? C#有一个不需要两个类也可以用于这种情况的部分关键字。

要回答你的问题,让基类不直接做任何事情,但总体来说是有用的。通常用于避免代码重复,但这不是一个严格的要求。

我会反而假设,是2类足够?如果绝大多数代码库都在一个类中,那么即使有两个类,也会产生维护问题。

也许你可以把你的班级分成更好的班级。对于情况下,一个典型的面向对象的类集合看起来是这样的:

Customer 
ShoppingCart 
Item 
Special 
Payment 
Order 

而这些仅仅是数据对象,这取决于你实现你很可能也概括了你的一些算法,比如如何计算的价格(虽然这可以住在这种情况下的项目...)

相关问题