Java设计模式详细学习专栏
Java设计模式详细学习专栏
sym_TQ
不论做什么事,都要相信自己,别让别人的一句话将你击倒!!
展开
-
设计模式 | 解释器模式()
解释器模式通过解释器模式来实现四则运算,如计算a+b-c的值,具体要求先输入表达式的形式,比如 a+b+c-d+e, 要求表达式的字母不能重复在分别输入a ,b, c, d, e 的值最后求出结果:如图基本介绍 在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都...原创 2020-02-21 14:28:05 · 285 阅读 · 0 评论 -
设计模式 | 备忘录模式(详解)
备忘录模式 原理类图: 角色分析:1) originator : 对象(需要保存状态的对象)2) Memento : 备忘录对象,负责保存好记录,即Originator内部状态3) Caretaker: 守护者对象,负责保存多个备忘录对象, 使用集合管理,提高效率 它只负责存储对象,而不能修改对象,也无须知道对象的实现细节。4) 说明:如果希望保存多个originator对象的不同时...原创 2020-02-20 21:30:38 · 686 阅读 · 0 评论 -
设计模式 | 中介者模式(详解)
中介者模式 案例介绍:编写信息管理模块:界面组件之间存在较为复杂的交互关系:如果删除一个客户,要在客户列表(List)中删掉对应的项,客户选择组合框(ComboBox)中客户名称也将减少一个;如果增加一个客户信息,客户列表中需增加一个客户,且组合框中也将增加一项。如果实现界面组件之间的交互一个问题?(1) 当用户单击“增加”按钮、“删除”按钮、“修改”按钮或“查询”按钮时,界面左侧的“客...原创 2020-02-20 14:42:37 · 1459 阅读 · 1 评论 -
设计模式 | 观察者模式
观察者模式 传统方法:/** * @author 孙一鸣 on 2020/2/18 * * 包含最新的天气信息 */public class WeatherData { private float temperatrue; private float pressure; private float humidity; private CurrentC...原创 2020-02-18 23:26:11 · 123 阅读 · 0 评论 -
设计模式 | 迭代器模式(详解)
迭代器模式 前言很早之前,我们的电视调节频道是需要用电视上的按钮去控制的,那时并没有遥控器,如果我们想要调台,只能一次又一次的拧按钮。越来越高级的电视机相继出现,现在的电话机,我们有了电视遥控器,我们使用电视遥控器来调台,这个时候,无需直接操作电视。我们可以将电视机看成一个存储电视频道的集合对象,通过遥控器可以对电视机中的电视频道集合进行操作,如返回上一个频道、跳转到下一个频道或者跳转至...原创 2020-02-18 17:04:31 · 1309 阅读 · 0 评论 -
设计模式之访问者模式(详细解释)
访问者模式根据软件设计的开闭原则 (对修改关闭,对扩展开放),我们怎么样实现这种需求呢?●Vistor(抽象访问者):抽象访问者为对象结构中每一个具体元素类ConcreteElement声明一个访问操作,从这个操作的名称或参数类型可以清楚知道需要访问的具体元素的类型,具体访问者需要实现这些操作方法,定义对这些元素的访问操作。●ConcreteVisitor(具体访问者):具体访问者实现了每...原创 2020-02-16 22:25:06 · 296 阅读 · 0 评论 -
设计模式之命令模式(详细说明)
命令模式 目录: 1.举例介绍2.基本介绍3.命令模式的原理类图4.角色分析5.命令模式流程解析:6.命令模式应用实例7. 实验截图8.命令队列的实现 8.1队列实现8.2数组实现9.请求日志10.命令模式的注意事项和细节1.举例介绍: 我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装app就可以控制对这些家电工作。这些智能家电来自不同...原创 2020-02-15 21:15:59 · 824 阅读 · 0 评论 -
设计模式之模板方法模式
模板模式简介: 设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延...原创 2020-02-14 21:18:18 · 128 阅读 · 1 评论 -
设计模式之代理模式
代理模式 1.静态代理 2.动态代理 、原创 2020-02-14 15:13:35 · 99 阅读 · 0 评论 -
设计模式之享元模式
享元模式举例分析1: 展示网站项目需求小型的外包项目,给客户A做一个产品展示网站,客户A的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:有客户要求以新闻的形式发布有客户人要求以博客的形式发布有客户希望以微信公众号的形式发布举例分析2: 在大学时代,估计每个人都去图书馆借过书。借书的流程很简单,如果书架上有这本书直接拿走,到借阅机上借阅就好了,如果没有,可以...原创 2020-02-13 17:14:55 · 200 阅读 · 0 评论 -
设计模式之外观模式
外观模式 影院管理项目 组建一个家庭影院:DVD播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为:• 直接用遥控器:统筹各设备开关• 开爆米花机• 放下屏幕• 开投影仪• 开音响• 开DVD,选dvd• 去拿爆米花• 调暗灯光• 播放• 观影结束后,关闭各种设备 传统方式解决影院管理传统方式解决影院管理问题分析 在Clie...原创 2020-02-11 20:56:42 · 214 阅读 · 0 评论 -
设计模式之组合模式
组合模式 案例展示:编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图:传统方案解决学校院系展示: 传统方案解决学校院系展示存在的问题分析将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的实际上我们的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个...原创 2020-02-11 17:13:57 · 344 阅读 · 0 评论 -
设计模式之装饰者模式
装饰者模式 案例展示:星巴克咖啡订单项目(咖啡馆):咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)调料:Milk、Soy(豆浆)、Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用OO的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖啡+调料组合。...原创 2020-02-10 22:49:39 · 300 阅读 · 0 评论 -
Java设计模式之桥接模式
桥接模式传统方法解决手机操作问题: 传统方法解决手机操作问题:: 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个的品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。我们只是想增加一个手机品牌,这样的类结构必须让我们在每个样式下去增加品牌,非常繁琐违反了单一职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这样增加了代码...原创 2020-02-09 18:15:55 · 434 阅读 · 0 评论 -
设计模式之适配器模式
1.适配器模式 基本介绍:适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式适配器模式工作原理: 适配器模式:将一个类的接口转换成另一种接口.让原本接...原创 2020-02-08 22:44:46 · 206 阅读 · 0 评论 -
建造者模式——及其容易理解!!!
建造者模式盖房项目需求 盖房项目需求需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.请编写程序,完成需求....原创 2020-02-07 20:39:12 · 243 阅读 · 0 评论 -
设计模式之原型模式
原型模式前言原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。克隆羊问题: 现在有一只羊tom,姓名为: tom, 年龄为:1,颜色为:白色,请编写程序创建和tom羊 属性完全相同的10只羊。传统方式解决克隆羊问题: /** * @author 孙一鸣 on 2020/2/6...原创 2020-02-06 22:18:36 · 374 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式案例说明: 一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare,bake, cut, box完成披萨店订购功能 案例分别使用四种方式去实现:点击跳转1.传统方法2.简单工厂模式3.工厂方法模式4.抽象工厂模式利用传统方法完成此案例: 设计思路:1.设计一个抽象P...原创 2020-02-05 20:26:09 · 245 阅读 · 0 评论 -
设计模式之7种单例模式
单例模式 设计模式类型设计模式分为三种类型,共23种创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式)。...原创 2020-02-04 21:07:54 · 556 阅读 · 0 评论 -
设计模式 | UML类图 | 依赖、泛化(继承)、实现、关联、聚合与组合
设计模式之UML类图1.UML类图基本介绍: UML——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等使用UML来建...原创 2020-02-03 20:35:22 · 626 阅读 · 0 评论 -
设计模式七大原则
Java设计模式 1. 设计模式的重要性软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。实际工作经历来说, 当一个项目开发完后,如果客户提出增新功能,怎么办?原来程序员离职,你接手维护该项目怎么办? (维护性[可读性、规范性])2.设计模式的目的...原创 2020-02-03 17:32:46 · 228 阅读 · 0 评论