自定义博客皮肤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)
  • 资源 (8)
  • 问答 (5)
  • 收藏
  • 关注

原创 23种设计模式

23种设计模式

2017-01-18 19:32:31 254

原创 中介者模式(Mediator)

1. 定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用。从而使其耦合松散,而且可以独立地改变它们之间的交互。2. 类图:Mediator:抽象中介者,抽象中介者角色定义统一的接口用于各同事角色之间的通信。Concrete Mediator:具体中介者,具体中介者通过协调各同事角色实现写作行为,因此它必须依赖于各个同事角色。Colleague:同事,每一个同事角色都知道中

2017-01-18 19:09:56 194

原创 原型模式(Prototype)

1. 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。2. 类图:3. 原型模式解析:原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。对象拷贝时,类的构造函数是不会被执行的。

2017-01-18 18:43:30 189

原创 状态模式(State)

1. 定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。2. 类图: 3. 状态模式解析:状态模式主要解决的是控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。

2017-01-18 17:08:46 209

原创 访问者模式(Visitor)

1. 定义:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。2. 类图:Visitor:抽象访问者,声明访问者可以访问哪些元素,具体到程序中就是visit方法的参数定义哪些对象是可以被访问的。ConcreteVisitor:访问者访问到一个类后要做什么事情Element:声明接受哪一类型的访问者访问,程序上是通过accept方法中定义的参数来

2017-01-18 15:37:08 244

原创 责任链模式(Chain of Responsibility)

1. 定义:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。2. 类图:3. 责任链模式解析:每个环节只有两个选项:要么承担责任做出回应,要么向下传递请求,最终会有环节做出回应。责任链有一缺点:调试不是很方便,特别是链条比较长,环节比较多的时候,由于才有了类似递归的方式,调试的时候逻辑可能比较复杂。

2017-01-18 11:36:32 236

原创 观察者模式(Observer)

1. 定义:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。2. 类图:3. 观察者模式解析:JDK中提供了:java.util.Observable实现类和java.util.Observer接口广播链问题:根据经验建议,在一个观察者模式中最多出现一个对象既是观察者也是被观察者,也就是说消息最多转发一次

2017-01-18 10:28:19 179

原创 组合模式(Composite)

1. 定义:将对象组合成树形结构以表示”部分-整体“的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。2. 类图:Component:抽象构件角色,定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性; Leaf:叶子对象,其下没有其他分支 Composite:树枝对象,它的作用是组合树枝节点和叶子节点3. 组合模式解析:组合模式主要是用来描述整体和部分的关系,用的最多

2017-01-17 19:45:40 219

原创 命令模式(Command)

1. 定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。2. 类图:3. 命令模式解析:命令模式将发出请求的对象和执行请求的对象解耦。在被解耦的两者之间是通过命令对象进行沟通的。命令对象封装了接收者和一个或一组动作。

2017-01-17 17:09:04 209

原创 桥接模式(Bridge)

1. 定义:将抽象部分与她的实现部分分离,使它们都可以独立地变化2. 类图:3. 桥接模式解析:业务抽象角色引用业务实现角色。 抽象和实现可以独立扩展,不会影响对方。

2017-01-17 16:09:53 276

原创 模版方法模式

1. 定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

2017-01-17 14:58:18 280

原创 单例模式

1. 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。2. 通用单例模式:public class SingletonPattern { private static SingletonPattern singletonPattern = null; private SingletonPattern() { } public static SingletonPa

2017-01-16 17:25:01 259

原创 外观模式(Facade)

1. 定义:为子系统中的一组接口提供一个一致的界面,次模式定义了一个高层接口,这个接口使得这一子系统更加容易使用2. 类图:3. 外观模式解析:外观不只是简化了接口,也将客户从组件的子系统中解耦。 外观和适配器可以包装许多类,但是外观的意图是简化接口,而适配器的意图是将接口转换成不同接口。

2017-01-16 16:57:13 252

原创 适配器模式

定义: 将一个类的接口转换成客户希望的另外一个接口。类图: 对象适配 类适配

2017-01-16 16:13:40 287

原创 代理模式

1. 定义:为其他对象提供一种代理以控制对这个对象的访问。2. 类图:3. 代理模式解析:- 代理模式和装饰模式的区别:两者目的不同,装饰者为对象增加行为,而代理是控制对象的访问。- 代理和适配器模式的区别:代理和适配器都是挡在其他对象的前面,并负责将请求转发给它们。适配器会改变对象适配的接口,而代理则实现相同的接口。代理模式适用的一些场合:远程代理,也就是为一个对象在不同的地址空间提供局部代表。

2017-01-16 15:31:35 239

原创 建造者模式

1. 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

2017-01-13 19:24:20 1317

原创 装饰模式

1. 定义:动态地给yield对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

2017-01-13 15:34:41 251

原创 抽象工厂模式

1. 定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

2017-01-13 11:28:21 243

原创 工厂方法模式

1. 定义:定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

2017-01-13 09:53:52 227

原创 简单工厂

简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。经常被使用

2017-01-12 20:06:21 334

原创 策略模式

1. 定义:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。

2017-01-12 15:44:48 276

转载 UML中的六大关系

一、UML中的六大关系在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。

2017-01-09 11:51:57 232

Wireshark-win64-3.2.3 (2).exe

Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions. Wireshark development thrives thanks to the volunteer contributions of networking experts around the globe and is the continuation of a project started by Gerald Combs in 1998.

2020-04-22

掌控习惯图书中的习惯养成模板.rar

掌控习惯书中的图表及模版。 Atomic Habits Resources Below, you'll find a list of useful downloads, templates, and bonuses that will help you make the most of the ideas covered in the book. Primary Resources The Habit Loop The Habits Cheat Sheet Media: Images and Figures Key Questions and Answers Endnotes Templates Habits Scorecard Template Implementation Intentions Template Habit Stacking Template Habit Tracker template Habit Contract template and example Bonus Chapters How to Apply These Ideas to Business How to Apply These Ideas to Parenting

2020-03-01

GitHub入门与实践(高清)

本书从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,GitHub与其他工具或服务的协作,使用GitHub的开发流程以及如何将GitHub引入到企业中。在讲解GitHub的代表功能Pull Request时,本书专门搭建了供各位读者实践的仓库,邀请各位读者进行Pull Request并共同维护。

2018-10-21

spring3.2.x源码(已编译)

spring最经典版本3.2.x,已编译好,可直接导入idea学习。由于众所周知的原因,github下载源码特别慢,我是下载了好几个小时。

2018-10-21

这就是搜索引擎

我挺喜欢这本书的,深入浅出让读者明白一个搜索引擎的大体架构和各个部分的经典技术手段

2018-10-20

Docker生成环境实践

本书围绕“Docker该如何应用到生产环境”这一核心问题展开。在本书中,读者将接触到多个IT企业应用Docker到生产环境的成功案例,了解Docker实际投产时将会面临的问题,以及它与现有基础设施存在的矛盾与冲突,了解构建Docker生态系统所需的配套设施,包括安全、构建镜像、持续集成/持续交付、镜像存储、配置管理、网络实现、服务发现、持久化存储以及日志监控等模块具体选型方案及利弊所在。

2018-10-20

计算机程序的构造和解释

《计算机程序的构造和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。

2018-10-20

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

TA关注的人

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