Abstract Factory模式,将具体的产品封装在具体Factory实现中,而客户只需要和Factory以及产品的抽象界面打交道,避免依赖于具体的Factory与产品,由于Factory封装了所有产品细节,所以要更换掉所有的组件,只要简单的抽换掉Factory就可以 了,不用修改客户端。例如,要制作一个跨平台的窗口程序,窗口由一系列控件组成,比如菜单,工具栏,按钮,滚动条等。为简化起见,设这个窗口只有菜单和工具栏。则程序如下:
运行:
CWindowsMenu ShowMenu
CWindowsToolBar ShowToolBar
Abstract Factory结构图如下: