我正在设计一个备份应用程序的实用程序。
备份功能将包含要执行的常见任务(公共代码)和一些独特的步骤。通过使用独特行为的界面和所有孩子共同的共同行为的抽象基类,我是在正确的轨道上吗?这种方法有什么缺点吗?还有什么更好的吗?
由于
答案 0 :(得分:0)
如果基类实际上实现了某些行为,那么我认为它被称为非 -abstract基类。
无论如何,我认为这被称为Template method pattern:您可能希望在模式词典中查找(这应该解释何时适当,并引用任何类似的替代模式)。
答案 1 :(得分:0)
我不会使用抽象基类来共享通用功能,而只是表达is-a关系。如果D来自B,无论B在哪里,都可以出现D.这是使用公共继承的标准。
虽然您可以使用私有继承,但您只能从某些语言的某个类派生。
这使我们指出应该是第一个 - 您应该考虑责任并在任何地方封装功能,将接口(或C ++中的纯抽象类)暴露给客户端,并在具体类中实现从中派生出来的功能那些接口。