在下面的类图中,我尝试使用 Bridge 设计模式来实现一个简单的文档创建器应用程序。具体的“DocMakers”负责文档布局,但他们每个人都接受一个“IFileFormat”来将每个文档生成为不同的格式
我的问题是,如果它是 PDF,我希望能够以特殊方式修改文档
我希望这个特殊的 PDF 功能在文档创建结束时发生,无论它是 DocMakerLayoutA 还是 DocMakerLayoutB,但由于一切都由接口控制,我似乎找不到它的位置。
如果我将函数“DoSomethingSpecialForPDF”添加到“IDocMaker”,它会起作用,但对于“FileFormarBMP”类,我必须让它不执行任何操作。这似乎是糟糕的设计。
我从一开始就设计错了这个东西,还是有办法用这种结构做到这一点?