摘要:
Template Method 模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现. 它是一个骨架,在框架的设计中多用此设计模式. 对模板方法进行挂钩: 钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现.钩子的存在, 可以让子灰有能力对算法的不同点进行挂钩.要不要挂钩,由子类自行决定. 好莱坞原则: 高层组件对低层组件的方式是"别调用我们,我们会调用你". Java代码 publicabstractclassCaffeineBeverage{//不希望子类覆盖此方法,声明为finalfinalvoidprepareRecipe(){boilWater 阅读全文
摘要:
1、概念理解 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。2、例子 tea、coffee制作例子Coffee 具体步骤如下 煮开水,煮咖啡,倒咖啡,加牛奶,加糖Tea 具体步骤如下:煮开水,泡茶,倒茶,加柠檬(1):首先是abstract模版类Java代码 publicabstractclassCaffeineBeverage{//模版方法,定义成final是不希望子类覆盖该方法finalvoidprepareRecipe(){boilWater();//把水煮沸brew();//调制pourInCup(); 阅读全文
摘要:
声明:转载抽象工厂是创建一系列的产品供客户代码使用,而生成器模式是生成多个产品后组合成一个产品供客户代码使用。生成器模式可以精确控制产品如何组合。因此在使用产品系列时,采用抽象工厂模式;而在需将将一系列产品组合成一个产品时,使用生成器模式2.Builder与Abstract Factory的区别:刚开始的时候,我也觉得Builder和Abstract Factory差不多,深入了解后才发觉,它们之间也是有区别的,虽然它们都是生成新对象给使用者,也可以创建复杂对象,不过Abstract Factory是立即生成新的对象,有实时性,而Builder则有可能需要多种条件都符合的时候才能生成新的对象. 阅读全文
摘要:
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://tianli.blog.51cto.com/190322/34089生成器模式属于对象结构型模式,其意图是将一个复杂对象的构建与他的表示分离,使得同样的构建创建过程可以创建不同的表示。适用性:1. 当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式时2. 当构造过程必须允许被构造的对象有不同的表示时。参与者: 生成器Builder:为创建一个Product对象的各个部件指定抽象接口(AnimalBuilder)。 具体生成器ConcreteBuilder:实现Bu 阅读全文