设计模式——外观模式

外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 介绍 意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统
阅读本文

设计模式——装饰器模式

装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。 介绍
阅读本文

Java开发人员的升级之路

第一部分:对于参加工作一年以内的同学。恭喜你,这个时候,你已经拥有了一份Java的工作。这个阶段是你成长极快的阶段,而且你可能会经常加班。但是加班不代表你就可以松懈了,永远记得我说的那句话,从你入行那一刻起,你就要不停的学习。在这一年里,你至少需要看完《Java编程思想》这本书。这本书的内容是帮助你对于Java有一个更加深入的了解,是Java基础的升级版。这本书很厚,当初看这本书,我花了整整三个月
阅读本文

设计模式第二次作业

1.如果需要开发一个跨平台视频播放器,可以在不同操作系统平台(如Windows、Linux、UNIX等)上播放多种格式的视频文件,常见的视频格式包括MPEG、RMVB、AVI、WMV等。使用Bridge模式来设计。 视频类public abstract class VideoType { private String name; public String getName() {
阅读本文

设计模式面对面

定义:设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性,设计模式使代码编写真正工程化。使用:每一种设计模式都是在特定场景下总结出来的,选用时需要根据特定的场景选择,不能为了模式而模式。设计模式概览 完善中。。。。。。
阅读本文

设计原理+设计模式

主讲人:许佳辉  1.1单一原则一个类一种职责,避免重复假如: 一个适配器用来加载首页简单的数据列表,但有多个类似的。如果是直接复制的话,一旦修改,就会容易陷入重复逻辑,一个地方更新代码,很容易忘记更新另一个地方的代码。一个类包含很多种职责会容易引发各种问题。例如: 适配器会把各种职责分类,获取数目的,获取布局的,配置数据的,配置类型的。如果把所有的代码写在了一起,找起来不方便代码累赘难以区分3如
阅读本文

自定义类封装request配合filter解决参数乱码

前述:     在写这篇笔记之前,对笔记中的设计模式进行介绍:     本篇笔记中将要使用到的设计模式是:装饰(包装)设计模式          (1)装饰(包装)设计模式口诀:               ①定义一个类,实现被装饰对象的接口               ②定义一个成员变量,记住被装饰对象的引用               ③定义构造方法,传入被装饰对象的实例
阅读本文

设计模式适配器

适配器模式设计原则:遵循开闭原则、体现功能复用常用场景:需要使用一个类的功能,但是该类的接口不符合使用场合要求的接口,可使用定制适配器,又或者是有一个接口定义的行为过多,则可以定义一个缺省适配器,让子类选择性的覆盖适配器的方法使用概率:40%复杂度:中变化点:无选择关键点:定制适配器的选择关键点在于是否有更加优良的替代方案,缺省适配器的选择关键点在于接口中的方法是否可以不全部提供,且都有缺省方案逆
阅读本文

设计模式之单例补遗

懒汉(双重检查锁定)方式的详解补充书接上回,还是先把代码再贴一次。public class LazySingleton { private static volatile LazySingleton instance; private LazySingleton() {} public static LazySingleton getInstance() {
阅读本文

设计模式原型模式

原型模式设计原则:无常用场景:需要在运行时动态的创建指定实例种类的对象,或是需要复用其状态使用概率:10%复杂度:中低变化点:无选择关键点:创建出来的对象是否可以立即投入使用逆鳞:在以为是深度拷贝的情况下,却未实现深度拷贝主要思想其实一个对象多new就是原型,即每次都用新的对象注意生成新对象,可以用new也可以进行克隆 new会有一系列编译、创建内存等过程 比直接进行克隆创建复制内存空间效率要
阅读本文

设计模式抽象工厂

抽象工厂模式设计原则:遵循单一职责、依赖倒置、开闭原则常用场景:需要一个接口可以提供一个产品族,且不必知道产品的具体种类使用概率:30%复杂度:中变化点:工厂与产品的种类选择关键点:产品族是否需要一起提供,且是否有一致的接口逆鳞:无相关设计模式建造者模式:两者都是建造一批对象或者说产品,不同的是两者的目的和实现手段,在建造者模式中,是为了复用对象的构建过程而定义了一个指挥者,而在抽象工厂模式中,是
阅读本文

设计模式——迭代器模式

定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。迭代器模式属于行为型模式。该设计模式的关键就是在具体容器类里面引入一个迭代器的具体实现类的实例,这样在处理遍历的时候就是迭代器的实现类在处理,而不是具体容器类处理了,就不用暴露该对象的内部了。 迭代器模式的优缺点        迭代器模式的优点有:简化了遍历方式,对于对象集合的遍历,还是比较麻烦的,对于数组或者有
阅读本文

设计模式之----状态模式

友情提示:xmind导出的图片分辨率比较小,缩放查看。 一、定义 当一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。又称状态对象模式,状态模式是对象的行为模式。 二、角色 环境(Context)角色 上下文:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个定义了对象的当前状态 抽象状态(State)角色 定义一个接口,用以封装环境(Con
阅读本文

设计模式阅读备忘笔记-组合模式

设计模式阅读备忘笔记-组合模式 组合模式 将对象组合合成树形结构以标识‘部分-整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 最近在研究行为树,突然想起来组合模式,就此记录回顾一下。 代码例子如下: 抽象节点 public abstract class AComposite { protected string name; public AComposi
阅读本文

设计模式之模版方法模式

目的: 1、什么是模板方法模式 2、模板方法模式如何实现 3、如何在模板方法模式中增加灵活性 4、专门行业是如何使用模板方法模式 模版方法模式: 定义了一个操作算法框架,而将一些步骤延迟到子类中实现,使得子类在不改变一个算法结构的同时就重新定义该算法的某些特定步骤,这就是模版方法 模板方法模式结构 1、定义抽象基类 1.1、实现方法(通用共同属性) 1.2、抽象方法(延迟方
阅读本文

设计模式(19)--空对象模式

什么是空对象模式? 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值
阅读本文

设计模式—观察者模式

目的: 1、理解观察者模式的概念和结构 2、掌握如何将观察者模式应用到项目中,解决项目实际问题 3、掌握观察者模式的应用场景 观察者模式:观察者是消息获取方,但被观察者状态更新时,则观察者获取到最新的状态信息,然后做出自己的动作。 定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变的时候,所有依赖于它的对象都得到通知并被自动更新。 一对多模式:一个subject,多个Obser
阅读本文

java 23种设计模式教程

设计模式分类创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。其实还有两类:并发型模式和线程池模式。 下面是整理的【设计模式思
阅读本文

设计模式学习之单例模式

单例模式单例模式定义:Ensure a class has only one instance , and provide a global point of access to it.(确保一个类只有一个实例,而且自行实例化并且向整个系统提供这个实例。)单例模式在我们开发中也是常遇到的,一般使用场景如下:要求生成唯一序列号的环境中在整个项目中需要共享访问点或共享数据创建一个对象需要消耗的资源过多
阅读本文

java设计模式----复合模式

复合模式:复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题要点:  1、MVC是复合模式,结合了观察者模式、策略模式和组合模式  2、模型使用观察者模式,以便观察者更新,同时保持两者之间的解耦  3、控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为  4、视图使用组合模式实现用户界面,用户界面通常组合了嵌套的组件,像面板、框架和按钮  5、这些模式携手合作,
阅读本文