- 博客(17)
- 资源 (4)
- 收藏
- 关注
原创 设计模式的一些相关原则
面向对象的三大特性:封装,继承和多态。 面向对象的四大好处:可维护性,可扩展性,可复用性和灵活性好。 设计模式的原则: 1.单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些 职责耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其它职责的能力。这种耦合会 ...
2011-06-23 17:01:23 147
原创 访问者模式
访问者模式:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的 前提下定义作用于这些元素的新操作。 即可以在不修改已有程序结构的前提下,通过添加额外的"访问者"来完成对已有代码功能的提升。 要点: 1.访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的 藕合解脱开,使得...
2011-06-23 16:31:38 103
原创 模板方法模式
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤迟到到子类中。 要点: 1.模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。 2.模板方法提供了一个很好的代码复用平台,通过把不变行为搬移到超类,去除子类中的重复代码来体现它的优势。 3.模板方法是代码复用的一项基本的技术,在类库中尤其重要。 它遵循“抽象类应当拥有尽可能多的行为,应当拥有尽可能少的...
2011-06-23 11:16:10 76
原创 策略模式
策略模式: 定义了算法家族,分别封装起来,让它们之间可以互相替换。 策略模式让算法独立于使用它的客户而独立变化,此模式让算法的变化,不会影响到使用算法的客户. 应用场景: 1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。 2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。 3、 对...
2011-06-23 10:29:18 71
原创 状态模式
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 主要解决的是当控制一个对象状态转换的条件表达式过于复杂时,把状态的判断 逻辑转移到表示不同状态的 一系列类当中,可以把复杂的判断逻辑简化。如果状态判断很简单,就没必要用状态模式。 适用场景: 1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状...
2011-06-22 16:34:51 63
原创 单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 /** * 单例类 */ public class Singleton { private static Singleton instance = null; // 构造方法让其private,禁止外界利用new创建此类实例的可能 // 所有类都有构造方法,不编码则系统默认生成空的...
2011-06-22 15:30:46 67
原创 代理模式
代理模式:为其它对象提供一种代理,以控制对这个对象的访问。 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在 客户端和目标对象之间起到中介的作用。 /** * Subject类,定义了RealSubject和Proxy的共用接口,这样就在任何 * 使用RealSubject的地方都可以使用Proxy. * */ ...
2011-06-22 15:14:32 68
原创 原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 即从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 浅复制:被复制对象的所有变量都含有与原来的对象相同的值,而所用的对其它对象的引用都仍然指向原来的对象 深复制:把引用对象的变量指向复制过的新对象,而不是原来被引用的对象。 /** * 原型接...
2011-06-22 14:36:23 78
原创 观察者模式
观察者模式(发布-订阅模式):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。 这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 当一个对象的改变需同时改变其它对象的时候,而且它不知道具体有多少对象有待改变时,应考虑使用观察者模式。 优点: 第一、观察者模式在被观察...
2011-06-17 10:46:20 97
原创 备忘录模式
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 这样以后就可将该对象恢复到原先保存的状态。 优点: 1、有时一些发起人对象的内部信息必须保存在发起人对象以外的地方,但是必须要由发起人对象自己读取, 这时使用备忘录模式可以把复杂的发起人内部信息对其他的对象屏蔽起来,从而可以恰当地保持封装的边界。 2...
2011-06-16 10:58:01 73
原创 中介者模式
中介者模式:用一个中介对象来封装一系列的对象交互,从而降低这些对象间的耦合性并且可以独立 地改变对象间的交互关系。中介者使各对象不需要显示地相互引用,从而使其藕合松散, 而且可以独立地改变它们之间的交互。 1.中介者模式很容易在系统中应用,也很容易在系统中误用,当系统中出现了"多对多"交互复杂 的对象群时,不要...
2011-06-16 10:10:50 92
原创 迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示. 1.当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历时,就应该考虑用迭代器模式。 2.当需要对聚集对象有多种遍历方式时,可以考虑用迭代器模式。 3.迭代器模式在访问数组,集合,列表等数据时,尤其是数据库数据操作时,是非常普遍的应用, 所以各种高级语言 都对它进行了封装,反而给人感觉此模式本...
2011-06-15 11:17:10 95
原创 解释器模式
解释器模式:给定一个语言,定义它的文法的一种表示。并定义一个解释器,这个解释器使用该表示来解释 语言中的句子。 1.如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。 这样就可以构造一个解释器,该解释器通过解释这些句子来解决该问题。 2.当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽...
2011-06-15 10:44:05 69
原创 享元模式
享元模式:运用共享技术有效地支持大量细粒度的对象。 1.享元模式可以避免大量非常相似类的开销,在程序设计中,有时需要生成大量细粒度的类实例来表示数据。 如果能发现这些实例除了几个参数外基本上都是相同的,有时就能够受大幅度地减少需要实例化的类的数量, 如果能把那些参数移到类实例的外面,在方法调用时将它们传递进来,就可以通过共享大幅度地减少单个实例的数目。 2.如果一个应用程序...
2011-06-14 11:22:29 82
原创 抽象工厂模式
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。 抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模式可以向客户端提 供一个接口,使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。 与工厂方法模式的区别: 抽象工厂模式: 1.多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 ...
2011-06-14 10:42:12 73
原创 简单工厂与工厂方法模式
简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。 1.简单工厂模式是属于创建型模式,又叫做静态工厂方法模式,但不属于23种GOF设计模式之一。2.优点:工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该 创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来, 仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如...
2011-06-13 16:38:32 86
原创 外观模式
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口, 这个接口使得这一子系统更加容易使用。 1. 外观模式的主要思想是将复杂的细粒度的对象服务包装成简单的易使用的粗粒度的功能服务.2. 在分布式应用中,通过远程调用服务,通过外观模式降低应用程序与服务的交互次数, 同时可以降低应用程序的复杂性。 /** * 子系统的...
2011-06-13 15:08:30 70
信息安全技术等级保护.zip
2019-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人