Oop 用两个方法创建一个小类,只用于继承,这是一个糟糕的设计吗?
我想创建一个包含两个方法的类,除了创建继承方法的两个子类之外没有其他用途。此类无法自行运行。这是一个坏的编程设计还是习惯?这是一个好习惯,它会导致更好的函数组织。另一个原因是您只需查看继承树,就知道它与两个函数类相关。它没有什么害处。甚至有些类除了让其他类从中派生之外什么都不做。超类本身是否有有用的实例并不重要。仅为其他类派生而存在的类通常称为抽象类;有些语言,如C++,也有语法特征,允许编译器在试图从抽象类创建对象时提供错误。所以有这样的课也不会那么糟糕 除此之外,什么是“坏习惯”?如果设置使代码更容易理解,那么它就不会坏 当然,如果您打算派生的两个类实际上没有任何共同点,而这两个方法只是“嘿,我注意到该类中的10行代码与另一个类中的10行代码相同”,那么将其转换为一个公共超类可能会带来更多的混乱。类仍然应该有某种形式的关系。如果只是为了共享一些随机出现的代码,那么独立函数可能是更好的选择 基本上,看看类的名称。如果你的新超类被命名为“一些非常通用的名字,因为我不知道它是什么”,那么它可能不是“好的设计”。另一方面,如果您对超类有一个合适的名称,并且派生类的名称仍然与超类有“某种”关系,那么这可能不是一件坏事 另一个“好”的强烈暗示是,当你开始使用指向超类的指针时,因为你不在乎你是在处理一个子类还是另一个子类Oop 用两个方法创建一个小类,只用于继承,这是一个糟糕的设计吗?,oop,inheritance,Oop,Inheritance,我想创建一个包含两个方法的类,除了创建继承方法的两个子类之外没有其他用途。此类无法自行运行。这是一个坏的编程设计还是习惯?这是一个好习惯,它会导致更好的函数组织。另一个原因是您只需查看继承树,就知道它与两个函数类相关。它没有什么害处。甚至有些类除了让其他类从中派生之外什么都不做。超类本身是否有有用的实例并不重要。仅为其他类派生而存在的类通常称为抽象类;有些语言,如C++,也有语法特征,允许编译器在试图从抽象类创建对象时提供错误。所以有这样的课也不会那么糟糕 除此之外,什么是“坏习惯”?如果设置使
好帖子!我稍后会投票表决这个答案。我不能确定它们是否相关,但它们相互依赖。我也想过把这两个班合并成一个班。我有一个类,它显示从属性列表加载的一系列文本。然后,另一个类显示特定的精灵/图片,该精灵/图片也从与正在显示的文本对应的属性列表加载。这两个类都有两个方法:loadValueFromPlist和displayNextValue。在loadValueFromPlist内部是didPlistLoad,它在完成后执行一些操作。我想创建一个包含这些方法的Supercals。很抱歉,我已经达到了最大文本限制。我想将超类命名为“PropertyLoader”,它包含前面列出的三个方法。这两个类继承了这一点,并将重写didPlistLoad以执行某些特定操作。所有其他方法保持不变。感谢你的回答。为了澄清Christian Stiebers的帖子:不要用继承来保存代码行。那是个糟糕的设计。这些类应该有一种“类”关系。您的“PropertyLoader”“TextLoader”/“ImageLoader”示例似乎没有问题(imho)。我决定不创建此类,而是更改类似的方法,使其功能不同。我将投票表决这个答案,因为它回答了我原来的问题。提问那些说“这属于”的人总是很重要的,因为他们经常是错的。还有,抽象类。调查一下。