建造者模式

背景

创建一个产品,可能需要为其设置多个参数,比如开发一个视频播放软件, 为了方便用户使用,该播放软件提供多种界面显示模式, 例如完整模式、精简模式、记忆模式、网络模式等。在不同的显示模式下主界面的组成元素有所差异。例如,在完整模式下将显示菜单、 播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下将显示主窗口、控制条、收藏列表等。

需要根据不同产品类型,调研不同的初始化代码,这些初始化代码通常深藏于一个包含众多参数且让人基本看不懂的构造函数中; 甚至还有更糟糕的情况,那就是这些代码散落在客户端代码的多个位置,很不利于代码维护。这时就可以引入建造者模式解决此问题。

定义

建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式模式将对象构造代码从产品类中抽取出来, 并将其放在一个名为生成器的独立对象中。

建造者模式

实现

建造者模式实现