摘要:
Builder模式,从这个名字我们可以看出来,这种设计模式就是用于组装具有复杂结构的实例的。 下面还是以一个实例程序来解释这种设计模式,先看实例程序的类图。 这里为了调试方便,只实现其中一个功能TextBuilder,剩下的HTMLBuilder可自行编写。 然后是实例程序代码。 Builder类是 阅读全文
摘要:
Prototype模式就是不根据类来生成实例,而是根据实例来生成新实例。至于为什么不能根据类来生成实例,在最后会讲到。 还是根据实例程序来理解这种设计模式吧。 下面是实例代码。 Product接口是复制功能的接口。Product接口继承了Cloneable接口,也就是说实现了Cloneable接口的 阅读全文
摘要:
Singleton模式就是确保只生成一个实例的模式。这里有两个意思,即想确保任何情况下都绝对只有一个实例和想在程序上表现出“只存在一个实例”。 下面通过一个实例来说明这种设计模式。 Singleton类只会生成一个实例。主要方法是在声明实例域时,使用static将singleton初始化为Singl 阅读全文
摘要:
简单来说,用Template Method模式来构建生成实例的工厂,就是Factory Method模式。在这个模式中,父类决定实例的生成方式,但不决定所要生成的具体的类,具体的处理全部交给子类负责。这样就可以将生成实例的框架和实际负责生成实例的类解耦。 下面的示例中,framework包是生成实例 阅读全文
摘要:
在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为Template Method模式即模板方法模式。 根据下面的示例程序理解模板方法模式。 AbstractDisplay类是示例程序的核心。该类只实现了display方法,这个实现了的方法就是处理流程的框架。之后的子类都是按照这个框架来进行 阅读全文
摘要:
Adapter模式也被成为Wrapper模式。适配器模式用于填补“现有的程序”和“所需的程序”之间差异的设计模式。 Adapter模式有两种,即使用继承的适配器和使用委托的适配器。 1.使用继承的适配器 下面根据代码来解释使用继承的适配器这种模式。 这里的Banner类就是现有的程序。有可以对字符串 阅读全文
摘要:
由于Java对象构造非常重要,所以Java提供了多种编写构造器的机制。 1.重载 如果多个方法有相同的名字、不同的参数,便产生了重载。编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选出相应的方法。例如在下面的示例程序中,在创建第一位员工对象时 阅读全文
摘要:
Iterator模式用于在数据集合中按照顺序遍历集合。即迭代器模式。 下面来看一段实现了迭代器模式的示例程序。 这段程序的作用是将书(Book)放置到书架(BookShelf)中,并将书的名字按顺序显示出来。 首先写一个Aggregate接口,这个接口是所要遍历的集合的接口。实现了该接口的类将成为一 阅读全文