我对“设计模式”相对陌生,因为它们是在正式意义上被提及的。我做专业人士的时间不长,所以我对这方面还很陌生。
我们得到了一个纯虚拟接口基类。这个接口类显然是为了提供派生子级应该做什么功能的定义。软件中的当前使用和情况决定了我们想要使用什么类型的派生子级,所以我建议创建一个包装器,它将传达我们想要的派生子代类型,并返回一个指向新派生对象的Base指针。据我所知,这个包装是一个工厂。
我的一位同事在基类中创建了一个静态函数来充当工厂。这给我带来麻烦有两个原因。首先,它似乎打破了基类的接口性质。我觉得界面本身需要从中获得孩子们的知识是不对的。
其次,当我试图在两个不同的Qt项目中重用基类时,它会导致更多的问题。一个项目是我实现第一个(可能也是这一类的唯一真正实现……尽管我想对另外两个将有几个不同派生类的功能使用相同的方法)派生类,第二个是我的代码最终将被使用的实际应用程序。我的同事创建了一个派生类,在我编写部件代码时充当实际应用程序的测试人员。这意味着我必须将他的头和cpp文件添加到我的项目中,这似乎是错误的,因为在我实现我的部分时,我甚至没有在项目中使用他的代码(但当它完成时,他会使用我的代码)。
我认为工厂真的需要成为基类的包装器,而不是充当工厂的Base,这是正确的吗?