2.设计模式
文章平均质量分 74
郑学炜
这个作者很懒,什么都没留下…
展开
-
14.代理模式
设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义为其它的对象提供一种代理,以控制这个对象的访问使用场景当不想直接访问某个对象的时候,就可以通过代理 package staticProxy;public interface Star { void plan(); void talk(); void sell(); void sing(); ...原创 2018-04-07 16:48:35 · 315 阅读 · 0 评论 -
11.桥接模式
桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。 桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。 将抽象部分与他的实现部分分离这句话不是很好理解,其实这并不是将抽象类与他的派生类分离,而是抽象类和它的派生类用来实现自己的对象。这样还是不能理解的话。我们就先来认清什么是抽象化,什么是实现化,什么是脱耦。 ...原创 2018-04-07 14:09:36 · 151 阅读 · 0 评论 -
9.观察者模式(发布订阅摸索)
其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。1、这个模式的结构图2、可以看到,该模式包含四个角色抽象被观察者角色(Subject):也就是一个抽象主题,它把所有对观察者对象的引用保存在一个集合中,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。抽象观察者角色(Observer):为所有...原创 2018-04-07 13:40:03 · 425 阅读 · 0 评论 -
10.适配器模式
最近学习java 基础知识,学习适配器的时候疑惑很多,上网查下资料,对于 Adapter的资料很多,但是比较下本篇不错,这里记录下,大家需要的可以看下。适配器模式就是把一个类的接口转换成客户端所期待的另外一种接口,从而使原接口不匹配而无法在一起工作的的两个类能在一起工作。从功能上说,这些接口不兼容的类一般具有相同或相似的功能。通常我们通过修改该类的接口来解决这种接口不兼容的情形,...原创 2018-04-07 11:29:16 · 176 阅读 · 0 评论 -
7.迭代器模式
一、迭代器模式介绍迭代器模式:提供一种方法顺序的访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。一般情况,我们自己开发时很少自定义迭代器,因为java本身已经把迭代器做到内部中了(比如:常用的list和set中都内置了迭代器)。当然,如果真有这种需求需要我们自定义迭代器的话,可以参考jdk的迭代器实现方式来实现自己的迭代器。迭代器是可以从前往后,或者从后往前遍历的。为遍历不同聚集结构提供如...原创 2018-04-06 22:53:11 · 153 阅读 · 0 评论 -
6.命令模式
定义:将一个请求封装成对象,使得请求发送者和请求接受者之间相互隔离,消除两者之间的耦合。引入命令类,使得不同请求对客户参数化,并且可以对命令添加附件操作,如:排队、撤销、日志、组合等。结构图:· Command:抽象命令类,一般是一个抽象类或者接口。在其中定义了命令的执行execute()、undo()等操作。· ConcreteCommand:具体命令类,实现了抽象命...原创 2018-04-06 20:41:40 · 143 阅读 · 0 评论 -
8.享元模式
一、 模式定义 所谓享元模式就是运行共享技术有效地支持大量细粒度对象的复用。系统使用少量对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。 共享模式是支持大量细粒度对象的复用,所以享元模式要求能够共享的对象必须是细粒度对象。 在了解享元模式之前我们先要了解两个概念:内部状态、外部状态。 内部状态:在享元对象内部不随外界环境改变而改变的共享部分。 ...原创 2018-04-06 16:43:13 · 181 阅读 · 0 评论 -
5.门面模式(也叫外观模式)
门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。门面模式又称为外观模式,它是一种对象结构型模式。其实就是把这些注册的流程封装起来成一个Façade类,然后客户只需要调用这个Façade的request方法则可以去注册那些流程。又比如去茶馆喝茶,用户...原创 2018-04-04 21:30:24 · 349 阅读 · 0 评论 -
4.策略模式
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理(各算法自成一类(具体策略(ConcreteStrategy)角色),实现抽象算法接口(抽象策略(Strategy)角色),...原创 2018-04-04 21:15:59 · 168 阅读 · 0 评论 -
3.责任链模式
定义:责任链模式(Chain of Responsibility)使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象能够处理它。类型:行为类模式考虑以下这样的场景:你要去给某公司借款 1 万元,当你来到柜台的时候向柜员发起 "借款 1 万元"的请求时,柜员认为金额太多,处理不了这样的请求,他转交这个请求给他的组长,组长也...原创 2018-04-04 20:35:13 · 172 阅读 · 0 评论 -
2.工厂模式(简单工厂+工厂方法+抽象工厂)
简单工厂、工厂方法、抽象工厂结合简单示例和UML图,讲解工厂模式简单原理。 一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说“开奔驰车!”,坐上Bmw后他说“开宝马车!”,坐上 Audi后他说“开奥迪车!”。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放...原创 2018-04-04 18:28:09 · 676 阅读 · 0 评论 -
1.单例模式(懒汉+饿汉+双锁校验+内部类+枚举)
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:· 1、单例类只能有一个实例。· 2、单例类必须自...原创 2018-04-04 16:01:33 · 1100 阅读 · 1 评论 -
12.修饰模式
我曾经以为应该用继承处理一切。后来领教到运行时扩展,远比编译时期的继承威力大。本章可以称为“给爱用继承的人一个全新的设计眼界”。我们即将再度探讨典型的继承滥用问题。在本章将会学到如何使用对象组合的方式,做到在运行时装饰类。一旦你熟悉了装饰的技巧,你讲能在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。如果仅仅使用继承,那么关系将会如下图:由于业务的扩展产生很多的子类,所以我们可以通...原创 2018-04-08 10:40:38 · 327 阅读 · 0 评论 -
15.代理模式之详谈动态代理模式(Spring的AOP实现)
java动态代理实现与原理详细分析1.代理模式关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类...原创 2018-04-08 00:14:00 · 772 阅读 · 0 评论 -
13.装饰器,桥接和适配器模式的异同
介绍前面几篇文章分别介绍了装饰器模式,桥接模式和适配器模式这三种设计模式。这三种设计模式,从设计思想角度上看是非常相似的。三者都是结构型的设计模式,而且都存在依赖抽象的情况。但是三者之间却又存在一些微妙的区别,这也是本文重点关注的内容。适配器模式该模式重点强调的是适配的功能。该模式的关键点是:· 主体类和适配器类实现相同的接口A· 主体类依赖适配器类· 适...原创 2018-04-28 16:20:30 · 918 阅读 · 0 评论