设计模式:Bridge模式

Bridge模式,桥接,参考网络的桥接模式,这里的功能是将类的功能层次结构和类的实现层次结构连接起来

类的层次结构:

功能层次结构

实现层次结构

功能层次结构

如果有一个Something类,如果要在Something中增加新功能,比如一个具体方法,那么可以编写一个Something的子类,比如SomethingGood类,在子类中添加具体方法,这样Something和SomethingGoo[……]

Read more

设计模式:Abstract Factory模式

抽象工厂模式,通过抽象工厂将抽象零件组装成抽象产品;不用关心零件的具体实现,而是只关心接口,使用这些接口将零件组装成产品

与之前Factory,Template Method以及Builder模式一样,具体方法的实现在子类中,但不同的是,抽象工厂模式中,子类也有一个具体的工厂,负责将具体的零件组装成具体产品

来一个具体的案例,将带有层次关系的链接制作成HTML文件

最终浏览器显示如下:

Link[……]

Read more

设计模式:Builder模式

在构建一些结构复杂的物体,比如建造一个大楼,没法一气呵成,只能先打牢地基,搭建框架,然后一层一层地盖;因此需要先构建组成这个物体的各个部分,然后分阶段给组装起来

如果需要将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建不同的表示的意图时,可以使用Builder构建模式,也叫生成器模式;用Builder模式,用户只需要指定需要构建的类型就可以得到它们,而具体构建的过程和细节就不需要知道了

[……]

Read more

设计模式:Prototype模式

通常通过new关键字指定类名来生成类的对象实例,但是如果初始化一个类需要消耗非常多的资源,或者是要处理的对象太多了,过程十分复杂的情况下,就不太方便了,性能和安全性也不太好

Prototype原型模式,通过一个原型对象来指明所要创建的对象类型,然后复制这个原型对象来创建出更多同类型的对象

实现Cloneable接口:Cloneable接口的作用是在运行时通知JVM可以安全地在已经实现了此接口的类[……]

Read more

设计模式:Singleton模式

单例模式,比较简单,主要是为了提供一种创建对象的方式,涉及到一个单例模式的类,负责创建自身类型的对象,同时确保只有单个对象被创建,那么对于该唯一的对象的访问方式,可以直接访问,而不需要实例化对象来完成

因此这样来说就要求:

Singleton类只能有一个实例

Singleton类创建自身的唯一实例

Singleton类给所有其他对象提供该实例

下面的案例主要验证所创建的实例唯一

创建的类:

[……]

Read more

设计模式:Factory Method模式

工厂方法,通过Template Method模式来生成实例的工厂,就是Factory Method模式,和Template Method一样,Factory Method模式超类决定实例的生成方式,但是不决定所要生成的具体的类,具体的处理都还是由子类来负责,这样生成实例的framework框架和实际负责生成实例的类解耦

以制作身份证为例,创建的类如下:

Product:定义一个抽象产品类,类里定[……]

Read more

设计模式:Template Method模式

超类中定义处理流程的框架,在子类中实现具体的处理逻辑,这种就是Template Method模式

这种模式带有模板功能,组成模板的方法定义在超类中,但是都是抽象方法,具体都是在子类中实现的,但是具体处理流程是在超类中定义

比如一个案例,放任意传入的字符和字符串循环显示5次最终输出

定义的类如下:

AbstractDisplay:实现了display模板方法的抽象类

CharDisplay:实现了[……]

Read more

 设计模式:Adapter模式

Adapter适配器,一般喜欢拿交流电转换成直流电的适配器来举例,可以简单理解成一个转接头的功能,使得能够相互满足需求

Adapter模式有两种方式:

类适配器模式:使用继承

对象适配器模式:使用委托

将原本不匹配的接口转换成期待的另一种接口;由于涉及模式宗旨就是提升代码的复用率,具体还是他通过例子code来进行说明

(1)类适配器模式

一个需求,将输入的字符串,做一些适配相关的操作的处理,比[……]

Read more