A Small Developer
设计模式之模板方法模式 I. 模板方法模式概述 模板方法模式 (Template Method): 行为型模式 定义一个算法的骨架,而将具体的算法延迟到子类中来实现 使得子类可以不改变算法结构,即可重新定义算法中的某些步骤 II. 模板方法模式的结构 一般由一个抽象类和其实现类通过继承结构组成: 抽象类中方法有三种: 抽象方法: 定义好规范由子类来实现 模板方法: 抽象类声明此方法且加以实现 模板方法是调用抽象方法来完成主要的逻辑功能 大多会被定义为 final...
设计模式之单例模式 I. 单例模式概述 单例模式(Singleton): 创建型模式 单例模式就是要确保类在内存中只有一个对象,该实例必须自动创建,并且对外提供 私有的构造方法 指向自己实例的私有静态引用 返回自己实例的静态公有方法 II. 单例模式的优缺点 优点: 在系统内存中只存在一个对象,因此可以节约系统资源, 对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能 避免对共享资源的多重占用 可以全局访问 缺点: 没有抽象层,因此扩展很难 职责过重,在一定程度上违背了单一职责 III....
设计模式之工厂模式 I. 简单工厂模式 1.简单工厂模式概述 简单工厂模式: 创建型模式 又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例 2.简单工厂模式的优缺点 优点 客户端不需要在负责对象的创建,从而明确了各个类的职责 缺点 -这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护 3. 示例 首先我们定义一个抽象类 Animal,定义一个 eat() 抽象方法 package org.lovian.designpattern.simplefactory;...
设计模式之装饰者模式 I. 装饰者模式概述 装饰者模式(Decorator Pattern): 结构型模式 装饰模式就是使用被装饰类的一个子类的实例,在客户端将这个子类的实例交给装饰类 是继承的替代方案 装饰者模式通过组合的方式扩展对象的特性 允许我们在任何时候对对象的功能进行扩展甚至是运行时扩展 用继承来完成对类的扩展则只能在编译阶段实现,所以在某些时候装饰者模式比继承要更加灵活 II. 装饰者模式的特征 装饰者(decorator)和被装饰(扩展)的对象有着相同的超类(supertype)。 我们可以用多个装饰者去装饰一个对象。 我们可以用装饰过的对象替换代码中的原对象,而不会出问题(因为他们有相同的超类)。 装饰者可以在委托(delegate,即调用被装饰的类的成员完成一些工作)被装饰者的行为完成之前或之后加上他自己的行为。 一个对象能在任何时候被装饰,甚至是运行时。 III. 装饰者模式的组成...
设计模式之面向对象思想设计原则 I. 面向对象思想设计原则 在开发面向对象程序时,我们应该遵循以下的原则,这些原则都是为了提高程序的扩展性,维护性,和复用性 1. 单一职责原则 开发人员经常说的”高内聚,低耦合” 每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个 在设计模式中,所有的设计模式都遵循这一原则 2. 开闭原则 核心思想:一个对象对扩展开放,对修改关闭 对类的改动是通过增加代码进行的,而不是修改现有代码 软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直运行下去,如何能够做到这一点呢? 这就需要借助于抽象和多态,即把可能变化的内容抽象出来,从而使抽象的部分是相对稳定的,而具体的实现则是可以改变和扩展的 3. 里氏替换原则 核心思想:在任何父类出现的地方都可以用它的子类来替代 同一个继承体系中的对象应该有共同的行为特征 4....