设计方式系列5-建造者模式
设计模式系列5-建造者模式设计模式系列5-建造者模式前言:建造者模式(Builder)前一节讲了抽象工厂模式,这节
设计模式系列5-建造者模式
设计模式系列5-建造者模式
前言:
建造者模式(Builder)前一节讲了抽象工厂模式,这节讲23种设计模式之建造者模式。
什么是建造者模式?将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现。(最初的定义出现于《设计模式》(Addison-Wesley,1994)).
何时使用建造者模式?在以下情境,自然会想到使用这一模式:1.需要创建涉及各种部件的复杂对象。创建对象的算法应该独立于部件的半杯方式 。常见例子是构建组合对象。2.构建过程需要以不同的方式(例如,部件或表现的不同组合)构建对象。
角色:在此设计模式中,有以下几个角色:1.Builder:为创建一个产品对象的各个部件指定抽象接口;2.ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件,定义并明确它所创建的表示,并提供一个检索产品的接口;3.Director:构造一个使用Builder接口的对象;4.Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程,包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
建造者模式的实现:1.建造者模式在Java中的实现:Build
建造者模式与抽象工厂模式的区别:1.建造者模式关注的是分步创建复杂对象,很多时候同一类型的对象可以以不同的方式创建。2.抽象工厂的重点在于创建简单或者复杂产品的套件。3.建造者模式在创多步建过程的最后一步返回产品,而抽象工厂模式则立刻返回产品。