自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 行为型模式-状态模式

状态模式当一个对象内在状态改变时允许改变行为,这个对象看起来改变了其类型。状态模式的核心是封装,状态的变更引起行为的变动,从外部看来就好像该对象对应的类发生改变一样。 状态模式角色抽象状态(State)角色:该角色用于封装环境对象的一个特定状态所对应的行为;具体状态(Concrete State)角色:该角色实现环境对象一个特定状态所对应的行为;环境(Context)角

2015-07-31 14:42:44 390

原创 行为型模式-模板方法模式

模板方法模式模板方法模式是类的行为模式。定义一个操作中的算法框架,将一些步骤延迟到子类中实现。使得子类可以改变一个算法的结构即可重定义该算法的特定步骤。模板方法需要开发抽象和子类设计师之间的写作,这就相当于一个总设计师负责给出一个算法和逻辑,而其他的设计师则给出这个算法逻辑的具体实现。 模板方法模式的角色抽象模板(Abstract Template)角色:该角色定义了一

2015-07-31 08:57:29 385

原创 行为型模式-策略模式

策略模式定义一组算法,将每个算法封装起来,并且使他们之间互相联系。其用意是定义一组算法,将每一个算法封装到具有共同接口的独立类中,从而使他们可以互相切换,使得算法在不影响到客户端的情况下发生变化。 策略模式角色环境(Context)角色:该角色叫做上下文角色,起到承上启下的作用,屏蔽高层对策略、算法的直接访问,它持有一个策略的引用;抽象策略(Strategy)角色:该角

2015-07-31 08:15:57 293

原创 行为型模式-迭代器模式

迭代器模式迭代模式又叫游标(cursor)模式,提供一种方法访问一个容器对象中各个元素,又不暴露该对象的内部细节。 迭代器模式角色抽象迭代器(Iterator)角色:定义访问和遍历元素的接口;具体迭代器(ConcreteIterator)角色:实现抽象迭代器,完成容器元素的遍历,同时要记录遍历中的当前位置及遍历对象的size;抽象聚集(Aggregate)角色:提供创建迭代

2015-07-30 11:24:58 235

原创 行为型模式-责任链模式

责任链模式使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象有处理它为止。 责任链角色:抽象处理者(Handler)角色:该角色对请求进行了抽象,并定义一个方法以设定和返回下一个处理者的引用;具体处理者(Concrete Handler)角色:该角色接到请求后,可以选择将请求处理掉,或者将请求传

2015-07-28 16:44:39 327

原创 行为型模式-命令模式

命令模式命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式角色客户端(Client)角色:创建一个具体命令(ConcreteCommand)对象并确定其接收;命令

2015-07-28 14:37:39 383

原创 结构型模式-亨元模式

亨元模式使用共享对象可以有效地支持大量细粒度的对象亨元模式以共享的方式高效地支持大量的细粒度对象。亨元对象能做到共享的关键是区分内部状态(Internal State)和外部状态(External State)。内部状态是存储在亨元对象内部的、可以共享的信息,并且不会随环境改变而变化。外部状态是岁环境改变而改变且不可以共享的状态。亨元对象的外部状态必须由客户端保存,并在亨元对象创建

2015-07-24 13:41:36 501

原创 结构型模式-外观模式

外观模式要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。外观模式提供了一个高层次的接口,使得子系统更易使用。外观模式注重“统一的对象”,即提供一个访问子系统的接口,只有通过该接口(Facade)才能允许访问子系统的行为发生。 外观模式角色外观(Facade)角色:客户端可以调用该角色的方法,该角色知晓相关子系统的功能和责任。正常情况下,本角色会将客户端发来

2015-07-24 11:18:24 387 1

原创 结构型模式-桥接模式

桥接模式将抽象和实现解耦,使得两者可以独立地变化桥梁模式虽然不是一个使用频率很高的模式,但是熟悉这个模式对于理解面向对象的设计原则,包括“开-闭”原则以及组合/聚合复用原则都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。桥梁模式角色  抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用;  修正抽象化(R

2015-07-24 09:53:15 319

原创 结构型模式-组合模式

组合模式将对象组合成树形结构以表示“部分-整体”的层次架构,使得用户对单个对象和组合对象的使用具有一致性。 组合模式角色抽象构件(Component)角色:该角色定义了参加组合对象的共有方法和属性,规范一些默认的行为接口;叶子构件(Leaf)角色:该角色是叶子对象,其下没有其他的分支,定义出参加组合的原始对象的行为;树枝构件(Composite)角色:该角色代表参加组合的、

2015-07-23 16:59:23 397

原创 结构型模式-适配器模式

适配器模式将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式角色目标(Targe)角色:该角色定义要转换成的目标接口;源(Adaptee)角色:需要被转换成目标角色的源角色;适配器(Adapter)角色:该角色是适配器模式的核心,其职责是通过继承或是类关联的方式,将源角色转换为目标角色。 适

2015-07-23 16:01:04 234

原创 结构型模式-适配器模式

适配器模式将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式角色目标(Targe)角色:该角色定义要转换成的目标接口;源(Adaptee)角色:需要被转换成目标角色的源角色;适配器(Adapter)角色:该角色是适配器模式的核心,其职责是通过继承或是类关联的方式,将源角色转换为目标角色。适配

2015-07-23 15:57:46 279

原创 抽象类

抽象类抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。但是在实例中我们可以创建无抽象方法的抽象类,如果你这么做了,这个抽象类也失去了它实际的意义,没有抽象方法的抽象类,我们也没必要将其定义为抽象类了。 抽象类与普通类的区别:抽象

2015-07-23 09:22:37 413

原创 结构型模式-装饰模式

装饰模式动态地给一个对象增加额外的职责。就增加功能来说,装饰模式比生成子类更加灵活。装饰模式角色抽象构件(Component)角色:该角色用于规范需要装饰的对象(原始对象);具体构件(Concrete Component)角色:该角色实现抽象构件接口,定义一个需要装饰的原始类;装饰(Decorator)角色:该角色持有一个构件对象的实例,并定义一个与抽象构件接口一致的接

2015-07-23 08:39:09 303

原创 结构型模式-代理模式

定义:为其他对象提供一种代理以控制该对象的访问,代理模式的角色抽象主题(Subject)角色:该角色是真实主题和代理主题的共同接口,以便在使用真实主题的地方都可以使用代理主题;代理主题(Proxy Subject)角色:也叫做委托类、代理类,该角色主要控制对真实主题的引用,负责在需要的时候创建或删除真实主题对象,并且在真实主题角色处理事务前后做预处理或善后处理工作;真实主题(Rea

2015-07-22 09:41:20 344

原创 深浅克隆

深浅克隆浅克隆:被复制对象的变量都含有与原来对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 深克隆:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量指向复制的新对象,而不再是原有对象的引用。换言之,深复制把要复制的对象所引用的对象都复制了一遍。Java的clon

2015-07-16 16:22:11 444

原创 创建型模式-原型模式

原型模式用原型实例指定创建对象的种类,并且通过这些原型创建新的对象。原型模式角色客户角色:该角色提出创建对象的请求;抽象原型(Prototype)角色:该角色是一个抽象角色,通常由一个Java接口或者抽象类实现,给出所有具体原型类所需的接口;具体原型(Concrete Prototype)角色:该角色是被复制的对象,必须实现抽象原型的接口。 原型模式优点性能

2015-07-16 11:17:38 428

原创 创建型模式-建造者模式

建造者模式(Builder pattern)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户和指导联系,指导者联系建造者最后得到产品牌。即建造模式可以强制实现一种分步骤进行的建造过程。建造者模式将复杂的内部创建封装在内部,对于外部调用者来说,只需要传入建造者和建造工具,对于内部是如何建造成

2015-07-16 09:24:32 409

原创 创建型模式-工厂模式

简单工厂方法模式简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例简单工厂模式组成工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现;抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现; 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。package des

2015-07-14 15:05:49 348

原创 Java的设计六大原则

一、单一原则(SRP:Single Responsibility Principle)一个类,应当只有一个引起它变化的原因:即一个类应该只有一个职责。一个庞大的对象承担太多的责任,当客户端需要该对象的某一职责时,就不得不将所有的职责包括进来,从而造成冗余的代码。类的职责越少,则对象之间的依赖关系越少,耦合度就减弱,受其他对象的约束与牵制就越少,从而保证系统的扩展性。单一职责的优点

2015-07-13 17:25:10 418

原创 创建型模式-单例模式

什么是单例模式确保一个类只有一个实例,而且自行实例化并向整个系统提供整个实例。单例模式的优点由于单例模式在内存中只存在一个实例,可以减少内存的开支,特别是对一个对象需要频繁的创建、销毁,而且创建和销毁的性能又无法优化时,单例模式的优势就非常明显;由于单例模式只生成一个实例,所以减少了系统的性能开销,当一个对象的产生需要较多的资源时,如读取配置、产生其他依赖对象时,则可以

2015-07-13 16:26:41 356

原创 Java 的静态代理和动态代理

一、代理概念:Proxy代理模式是一种结构型设计模式,其目的就是为其他对象提供一个代理以控制对该对象的访问。代理类和委托类有共同的父类或接口,这样在任何使用委托类对象的地方动可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完后的后续处理。二、静态代理由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文

2015-07-09 16:26:03 424

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除