装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法 ...
分类:
Web程序 时间:
2020-06-30 12:40:18
阅读次数:
74
观察者模式定义了一种一对多的依赖关系,让多个观察者对象监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使他们能够自动更新自己 应用场景:当一个对象的改变需要同事改变其他对象的时候,而且它不知道具体有多少对象有待改变时,应该考虑使用观察者模式。 观察者模式所作的工作其实就是在 ...
分类:
Web程序 时间:
2020-06-29 15:15:09
阅读次数:
65
1. 抽象基类:类中定义抽象一些方法,用以在子类中实现 2. 继承自抽象基类的子类:实现基类中的抽象方法 3. 工厂类:用以实例化调用所有相对应的子类 通过采用面向对象的继承特性,可以很容易就能对原有程序进行扩展,比如:‘乘方’,‘开方’,‘对数’,‘三角函数’,‘统计’等,以还可以避免加载没有必要 ...
分类:
Web程序 时间:
2020-06-28 15:12:14
阅读次数:
73
单例模式(Singleton) /*** * Class Singleton 单例模式 * 单例类不能再其它类中直接实例化,只能被其自身实例化。它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用。 * 1.私有的构造函数、克隆函数,防止外部代码new、clone * 2.私有的静态的成员变 ...
分类:
Web程序 时间:
2020-06-27 18:40:16
阅读次数:
99
定义: 外观模式(Facade):又叫门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 代码实例: 假设实现一个功能需要用到子系统中的四个方法。 /** * Class SubSystemOne */ class SubSystemOn ...
分类:
Web程序 时间:
2020-05-04 17:26:43
阅读次数:
92
定义: 装饰器模式(Decorator):动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器比生成子类更加灵活。 结构: Component:定义一个对象接口,可以给这些对象动态地添加职责。 ConcreteComponent:定义了一个具体的对象,也可以给这个对象添加一些职责。 Decor ...
分类:
Web程序 时间:
2020-05-04 13:00:41
阅读次数:
64
定义: 组合模式(Composite):将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。当你发现需求中是体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一的使用组合结构中的所有对象时,就应该考虑用组合模式了。 实 ...
分类:
Web程序 时间:
2020-05-03 17:00:00
阅读次数:
69
简单描述 策略模式(Strategy Pattern)作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 策略模式是一种对象行为型模式。 模式结构 策略模式包含如下 ...
分类:
Web程序 时间:
2020-04-27 09:30:35
阅读次数:
84
定义: 原型模式(Prototype):用原型实例指定创建对象的种类,并且通过 clone 这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。目的是使用 clone 对象来减少 new 对象的开销。 原型 clone 有浅复制和深复制:浅复制: ...
分类:
Web程序 时间:
2020-04-05 13:17:33
阅读次数:
77
定义: 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 代码实例: 这里还是接着上篇简单工厂模式的那个例子,改成工厂方法模式。 1、创建一个抽象类 ApptEncoder /** * 抽象类 * Class ApptEncoder */ a ...
分类:
Web程序 时间:
2020-03-22 15:52:43
阅读次数:
90