设计模式
文章平均质量分 86
编码小农
浙江大学软件学院
展开
-
Java 设计模式(十四):责任链模式
参考链接:职责链模式-Chain of Responsibility Pattern1. 模式概述很多情况下,在一个软件系统中可以处理某个请求的对象不止一个,例如我发起审批流程,需要先后经历项目经理、部门经理、技术总监、财务、CEO,他们可以构成一条处理审批的链式结构,审批单沿着这条链进行传递,这条链就称为责任链。责任链可以是一条直线、一个环或者一个树形结构,最常见的责任链是直线型,即沿着一条单向的链来传递请求。链上的每一个对象都是请求处理者,责任链模式可以将请求的处理者组织成一条链,并让请求沿着链传递原创 2020-05-11 11:04:23 · 532 阅读 · 0 评论 -
Spring 中使用到哪些设计模式
转载自itxxz.com/a/javashili/tuozhan/2014/0601/7.html1. 简单工厂模式简单工厂模式又叫做静态工厂方法(StaticFactory Method)模式,它不属于23种GOF设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识...转载 2019-02-21 12:48:42 · 1703 阅读 · 0 评论 -
Java 设计模式(十三):代理模式
参考链接:代理模式-Proxy Pattern近年来,代购已逐步成为电子商务的一个重要分支。代购简单来说就是找人帮忙购买所需要的商品,代购网站就是其中一种产物,它为消费者提供在线的代购服务,如果看中某国外购物网站上的商品,可以登录代购网站填写代购单并付款,代购网站会帮助进行购买然后通过快递公司将商品发送给消费者。商品代购过程如图所示:在软件开发中,也有一种设计模式可以提供与代购网站类似的功能...原创 2019-02-06 09:20:55 · 2936 阅读 · 0 评论 -
Java 设计模式(十二):享元模式
参考链接:享元模式-Flyweight Pattern1. 模式概述定义:运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。当一个软件系统在运行时产生的对象数量太多,将会导致运行代价过高,带来系统性能下降等问题。例如在一个文本字符串中存在很多重复的字符,如果每一个字符都用一个单独的对象来表示,将会占用较多的内存空间,那...原创 2019-01-04 20:28:47 · 2484 阅读 · 0 评论 -
Java 设计模式(八):桥接模式
参考链接:桥接模式-Bridge Pattern1. 模式概述定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联。桥接模式用一种巧妙的方式处理多层继承...原创 2018-12-12 10:16:27 · 2031 阅读 · 0 评论 -
Java 设计模式(七):适配器模式
参考链接:适配器模式-Adapter Pattern笔记本电脑的工作电压一般是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(AC Adapter),俗称充电器或变压器。这个电源适配器使生活用电和笔记本电脑得以兼容,如图所示:1. 模式概述定义:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可...原创 2018-12-11 13:44:07 · 2666 阅读 · 0 评论 -
Java 设计模式(十一):外观模式
参考链接:外观模式-Facade Pattern1. 模式概述定义:定义一个高层接口作为为子系统中一组接口的统一入口。外观模式通过引入一个新的外观类(Facade)为子系统提供一个统一的入口,简化了类与类之间的交互。下图可以直观的表达外观模式的作用:外观模式没有一个一般化的类图描述,下图所示的类图可以作为描述外观模式的结构图。外观模式包含如下两个角色:Facade(外观角色):在...原创 2018-12-22 13:48:16 · 1856 阅读 · 0 评论 -
Java 设计模式(十):装饰模式
参考链接:装饰模式-Decorator Pattern1. 模式概述定义:动态地给一个对象增加一些额外的职责。装饰模式是一种用于替代继承的技术,它通过使用对象之间的关联关系取代类之间的继承关系来给对象动态增加职责。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。在装饰模式中,我们通常会定义一个抽象装饰类,而将具体的装饰类作为它的子...原创 2018-12-15 18:08:44 · 3459 阅读 · 0 评论 -
Java 设计模式(九):组合模式
参考链接:组合模式-Composite Pattern树形结构在软件中随处可见,例如操作系统中的目录结构、应用软件中的菜单、办公系统中的公司组织结构等等,如何运用面向对象的方式来处理这种树形结构是组合模式需要解决的问题,组合模式通过一种巧妙的设计方案使得用户可以一致性地处理整个树形结构或者树形结构的一部分,也可以一致性地处理树形结构中的叶子节点(不包含子节点的节点)和容器节点(包含子节点的节点)...原创 2018-12-15 10:31:10 · 2213 阅读 · 0 评论 -
Java 设计模式(五):原型模式
参考链接:原型模式-Prototype Pattern1. 模式概述定义:使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。原型模式的工作原理很简单:将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝自己来实现创建过程。需要注意的是通过克隆方法所创建...原创 2018-12-01 14:36:26 · 2378 阅读 · 0 评论 -
Java 设计模式(四):单例模式
参考链接:单例模式-Singleton Pattern对于一个软件系统的某些类而言,我们无须创建多个实例。举个大家都熟知的例子——Windows任务管理器,如图所示:通常情况下,无论我们启动任务管理多少次,Windows系统始终只能弹出一个任务管理器窗口。为什么要这样设计呢?我们可以从以下两个方面来分析:其一,如果能弹出多个窗口,且这些窗口的内容完全一致,全部是重复对象,这势必会浪费系统资源...原创 2018-11-27 10:55:03 · 6480 阅读 · 0 评论 -
Java 设计模式(六):建造者模式
参考链接:建造者模式-Builder Pattern1. 模式概述定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。它关注如何一步一步创建一个的复杂对象,不同的具体建造者定义了不同的创建...原创 2018-12-04 13:39:51 · 2084 阅读 · 0 评论 -
Java 设计模式(三):抽象工厂模式
参考链接:抽象工厂模式-Abstract Factory Pattern工厂方法模式解决了简单工厂模式存在的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是我们本文将要学习的抽象工厂模式的基本思想。1. 模式概述定义:提供一个创建一系列相关或相互依赖...原创 2018-11-24 23:45:01 · 2193 阅读 · 0 评论 -
Java 设计模式(二):工厂方法模式
参考链接:工厂方法模式-Factory Method Pattern在介绍简单工厂模式时提到简单工厂模式存在一个很严重的问题,就是当系统中需要引入新产品时,由于静态工厂方法通过所传入参数的不同来创建不同的产品,这必定要修改工厂类的源代码,将违背“开闭原则”,如何实现增加新产品而不影响已有代码?工厂方法模式应运而生,本文将介绍第二种工厂模式——工厂方法模式。1. 模式定义定义一个用于创建对象的...原创 2018-11-22 15:56:51 · 3044 阅读 · 0 评论 -
Java 设计模式(一):简单工厂模式
参考链接:简单工厂模式-Simple Factory Pattern1. 模式定义定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法模式。2. 模式概述简单工厂模式并不属于GoF 23个经典设计模式,但通常将它作为学习其他工厂模式的基础,它的设计思想很简单,其基本流程...原创 2018-11-22 10:03:08 · 3236 阅读 · 0 评论 -
设计模式
1. 什么是设计模式设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。2. 设计模式的类型根据设计模式的参考书 Design Patterns - Elements of Reusable Object-...原创 2018-11-18 22:17:38 · 2587 阅读 · 0 评论