随笔分类 - 设计模式
摘要:一、什么是观察者模式 先讲什么是行为性模型,行为型模式关注的是系统中对象之间的相互交互,解决系统在运行时对象之间的相互通信和协作,进一步明确对象的职责。 观察者模式,是一种行为性模型,又叫发布-订阅模式,他定义对象之间一种一对多的依赖关系,使得当一个对象改变状态,则所有依赖于它的对象都会得到通知并自
阅读全文
摘要:一、什么是策略模式 定义了一系列的算法 或 逻辑 或 相同意义的操作,并将每一个算法、逻辑、操作封装起来,而且使它们还可以相互替换。(其实策略模式Java中用的非常非常广泛) 我觉得主要是为了 简化 if…else ,switch...case等所带来的复杂和难以维护。 二、策略模式结构 抽象策略(
阅读全文
摘要:一、什么是原型模式 原型设计模式简单来说就是克隆 原型表明了有一个样板实例,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可使程序运行更高效。 二、原型模式的结构 抽象原型类:规定了具体原型对象必须实现的接口。 具体原型类:实现抽象原型类的 c
阅读全文
摘要:一、什么是外观模式 外观模式:也叫门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。 它向现有的系统添加一个接口,用这一个接口来隐藏实际的系统的复杂性。 使用外观模式,他外部看起来就是一个接口,其实他的内部有很多复杂的接口已经被实现 二、外观模式结构 外观(Facade)角色
阅读全文
摘要:一、什么是模板方法 模板方法模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。 二、模板方法的结构 1)抽象类/抽象模板(Abstract Class) 抽象模板类,负责给出一个算法的轮廓和骨架。它由
阅读全文
摘要:一、什么是建造者模式 建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的方式进行创建。 工厂类模式是提供的是创建单个类的产品 而建造者模式则是将各种产品集中起来进行管理,用来具有不同的属性的产品 建造者模式通常包括下面几个角色: Builder:给出一个抽象接口,以
阅读全文
摘要:一、什么是代理模式 通过代理控制对象的访问,可以在这个对象调用方法之前、调用方法之后去处理/添加新的功能。(也就是AOP的微实现) 代理在原有代码乃至原业务流程都不修改的情况下,直接在业务流程中切入新代码,增加新功能,这也和Spring的(面向切面编程)很相似 二、代理模式的结构 抽象主题(Subj
阅读全文
摘要:一、什么是工厂模式 它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式 二、工厂模式好处 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代
阅读全文
摘要:一、什么是单例 保证一个类只有一个实例,并且提供一个访问该全局访问点 二、那些地方用到了单例模式 网站的计数器,一般也是采用单例模式实现,否则难以同步。 应用程序的日志应用,一般都是单例模式实现,只有一个实例去操作才好,否则内容不好追加显示。 多线程的线程池的设计一般也是采用单例模式,因为线程池要方
阅读全文
摘要:一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石
阅读全文