自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (5)
  • 收藏
  • 关注

原创 java设计模式——策略模式(Strategy Pattern)

概述:       在策略模式中,我们可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里,每一个封装算法的类我们都可以称之为一种策略(Strategy),为了保证这些策略在使用时具有一致性,一般会提供一个抽象的策略类来做规则的定义,而每种算法则对应于一个具体策略类。       策略模式的主要目的是将算法的定义与使用分开,也就是将算法的行为和环境分开,将算法的定义放在

2016-08-31 15:15:53 575

原创 java设计模式——状态模式(State Pattern)

概述:        状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对于客户端而言,无须关心对象状态的转换以及对象所处的当前状态,无论对于何种状态的对象,客户端都可以一致处理

2016-08-30 16:57:57 695

原创 java设计模式——观察者模式(Observer Pattern)

概述:       观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间可以没有任何相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展。定义:       定义对

2016-08-29 15:25:06 582

原创 java设计模式——中介者模式(Mediator Pattern)

概述:       如果在一个系统中对象之间的联系呈现为网状结构,如图1-1所示。对象之间存在大量的多对多联系,将导致系统非常复杂,这些对象既会影响别的对象, 也会被别的对象所影响,这些对象称为同事对象,它们之间通过彼此的相互作用实现系统的行为。在网状结构中,几乎每个对象都需要与其他对象发生相互作用, 而这种相互作用表现为一个对象与另外一个对象的直接耦合,这将导致一个过度耦合的系统。

2016-08-23 17:35:11 501

原创 java设计模式——命令模式(Command Pattern)

概述:       在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与请求接收者能够消除彼此之间的耦合,让对象之间的调用关系更加灵活,可以灵活地指定请求接收者以及被请求的操作。命令模式为此类问题提供了一个较为完美的解决方案。       命令

2016-08-22 16:53:35 406 1

原创 java设计模式——备忘录模式(Memento Pattern)

概述:       备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘录模式。 定义:       在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种...

2016-08-19 15:27:55 448

原创 java设计模式——原型模式(Prototype Pattern)

概述:       在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。需要注意的是通过克隆方法所创建的对象是全新的对象,它们在内存中拥有新的地址,通常对克隆所产生的对象进行修改对原型对象不会造成任何影响,每一个克隆对象都是相互独立的。通过不同的方式修改可以得到一系列相似但不完全相同的对象。 定义:       原型模式(Prototype...

2016-08-18 17:07:07 809

原创 java设计模式——责任链模式(Chain of Responsibility Pattern)

概述:       在软件系统中通常处理用户请求的对象不止一个,比如用户登陆请求,大多数情况都是分为普通用户和VIP用户,当用户登陆的时候,肯定会处理这个请求,先查看是否存在该用户,然后是普通还是VIP用户,最后会有不同的处理结果。责任链可以是一条直线、一个环或者一个树形结构,最常见的责任链是直线型,即沿着一条单向的链来传递请求。链上的每一个对象都是请求处理者,责任链模式可以将请求的处理者组织

2016-08-17 16:24:16 476

原创 java设计模式——代理模式(Proxy Pattern)

概述:       在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到 中介的作用,并且可以通过代理对象去掉客户不能看到 的内容和服务或者添加客户需要的额外服务。通过引入一个新的对象来实现对真实对象的操作或者将新的对 象作为真实对象的一个替身,这种实现机制即 为代理模式。代理模式又可以分为多种类型

2016-08-16 16:29:45 405

原创 java设计模式——享元模式(Flyweight Pattern)

概述:       面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。 享元模式正是为解决这一类问题而诞生的。享元模式通过共享技术实现相同或相似对象的重用。在享元模式中可以共享的相同内容称为内部状态(IntrinsicState),而那些需要外部环境来设置的不能共享的内容称为外部状

2016-08-15 17:51:50 397

原创 java设计模式——外观模式(Facade Pattern)

外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。定义:外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象

2016-08-12 17:38:43 383

原创 java设计模式——装饰模式(Decorator Pattern)

装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。 装饰模式可以在不需要创造更多子类的情况下,将对象的功能加以扩展。定义:装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility),就增加对象功能来说, 装饰模式比生成子类实现更为灵活。其别名也可以称为包装器(Wr

2016-08-11 17:11:50 471 1

原创 java设计模式——组合模式(Composite Pattern)

对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下我们希望一致地处理它们,因为对于这些对象的区别对待将会使得程序非常复杂。

2016-08-09 17:38:38 493

原创 java设计模式——桥接模式(Bridge Pattern)

设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:       第一种设计方案是为每一种形状都提供一套各种颜色的版本。       第二种设计方案是根据实际需要对形状和颜色进行组合。       对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更

2016-08-06 15:04:17 462

unique_ptr源码

该文档是C++ auto_ptr源码,感兴趣的可以自行下载学习,方便大家学习参考。

2019-02-28

C++ auto_ptr源码

该文档是C++ auto_ptr源码,感兴趣的可以自行下载学习。

2019-02-27

智能指针与引用计数详解

该demo主要展现智能指针和引用计数的实现过程,总共两个类,一个智能指针类,一个引用计数类,另外附一份执行步骤资料

2018-12-10

Ubuntu有线连接驱动包

Ubuntu有线连接驱动包,解决网络连接问题

2017-03-24

FindBugs安装包

这是最新版本findbugs工具的安装包

2015-09-18

空空如也

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

TA关注的人

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