设计模式
不一样的花朵
只要学不死,就往死里学.别人可以在智商上面压制自己,但是绝对不能在学习时间上面压制自己.
展开
-
图解Java设计模式之职责链模式
图解Java设计模式之职责链模式学校OA系统的采购审批项目 :需求是传统方案解决OA系统审批,传统的设计方案职责链模式基本介绍职责链模式解决OA系统采购审批职责链模式在SpringMVC框架应用的源码职责链模式的注意事项和细节学校OA系统的采购审批项目 :需求是采购员采购教学器材1)如果金额 小于等于 5000,由教学主任审批 (0<=x<=5000)2)如果金额 小于等于 1...原创 2020-04-04 17:30:40 · 238 阅读 · 0 评论 -
图解Java设计模式之策略模式
图解Java设计模式之策略模式编写鸭子项目,具体要求如下 :传统方案解决鸭子问题的分析和代码实现传统方式解决鸭子问题分析和解决方案编写鸭子项目,具体要求如下 :1)有各种鸭子(比如 野鸭、北京鸭、水鸭等)鸭子有各种行为,比如叫、飞行等等。2)显示鸭子的信息传统方案解决鸭子问题的分析和代码实现1)传统的设计方案(类图)传统方式解决鸭子问题分析和解决方案1)其它鸭子,都继承类Duck类...原创 2020-04-04 11:24:08 · 1819 阅读 · 0 评论 -
图解Java设计模式之状态模式
图解Java设计模式之状态模式APP抽象活动问题状态模式基本介绍状态模式的原理类图状态模式解决APP抽奖问题APP抽象活动问题请编写程序完成APP抽象活动,具体要求如下 :1)加入每参加一个这个活动要扣除用户50积分,中奖概率是10%。2)奖品数量固定,抽完就不能抽奖。3)活动有四个状态 :可以抽象、不能抽象、发放奖品和奖品领完。4)活动的四个状态转换关系图(右图)状态模式基本介绍...原创 2020-04-03 19:53:46 · 664 阅读 · 0 评论 -
图解Java设计模式之解释器模式
图解Java设计模式之解释器模式四则运算问题传统方案解决四则运算问题分析解释器模式基本介绍解释器模式来实现四则四则运算问题通过解释器模式来实现四则运算,如计算 a + b + c 的值,具体要求1)先输入表达式的形式,比如 a + b + c + d + e,要求表达式的字母不能重复2)在分别输入a,b,c,d,e的值3)最后求出结果传统方案解决四则运算问题分析1)编写一个方法,接收...原创 2020-04-02 19:49:29 · 294 阅读 · 0 评论 -
图解Java设计模式之备忘录模式
图解Java设计模式之备忘录模式游戏角色状态恢复问题传统方案解决游戏角色恢复传统的方式的问题分析备忘录模式基本介绍备忘录模式原理类图游戏角色恢复状态实例游戏角色状态恢复问题游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态。传统方案解决游戏角色恢复传统的方式的问题分析1)一个对象,就对应一个保存...原创 2020-04-01 16:04:10 · 244 阅读 · 0 评论 -
图解Java设计模式之中介者模式
图解Java设计模式之中介者模式智能家庭项目传统方案解决智能家庭管理问题中介者模式基本介绍中介者模式的原理类图中介者模式 - 智能家庭的操作流程中介者模式的注意事项和细节智能家庭项目1)智能家庭包括各种设备,闹钟、咖啡机、电视机、窗帘等2)主人要看电视时,各个设备可以协同工作,自动完成看电视的准备工作,比如流程为 :闹铃响起 - 》咖啡机开始做咖啡 -》窗帘自动落下 -》电视机开始播放传统...原创 2020-03-30 16:48:03 · 382 阅读 · 0 评论 -
图解Java设计模式之观察者模式
图解Java设计模式之观察者模式天气预报项目需求天气预报设计方案 1 - 普通方案观察者模式(Observer)原理观察者模式解决天气预报需求天气预报项目需求1)气象站可以将每天测量到的湿度、温度、气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。2)需要设计开放型API,便于其他第三方也能接入气象站获取数据。3)提供温度、气压和湿度的接口。4)测量数据更新时,要能实时的通知...原创 2020-03-30 11:28:34 · 293 阅读 · 0 评论 -
图解Java设计模式之迭代器模式
图解Java设计模式之迭代器模式看一个具体的需求传统的方式的问题分析迭代器模式基本介绍迭代器模式的原理类图迭代器模式应用实例迭代器模式在JDK - ArrayList 集合应用的源码分析迭代器模式的注意事项和细节看一个具体的需求编写程序展示一个学校院系结构 :需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图 :传统的方式的问题分析1)将学院看做...原创 2020-03-29 16:50:07 · 973 阅读 · 0 评论 -
图解Java设计模式之访问者模式
图解Java设计模式之访问者模式测试系统的需求传统方式的问题分析访问者模式基本介绍访问者模式应用实例访问者模式的注意事项和细节测试系统的需求1)将人分为男人和女人,对歌手进行测评,看完某个歌手表演后,得到他们对该歌手的不同评价(评价有不同的种类,比如成功、失败等)2)传统方案传统方式的问题分析1)如果系统比较小,没有问题,但是考虑系统增加越来越多的新的功能时,对代码改动比较大,违反类o...原创 2020-03-28 21:30:03 · 247 阅读 · 0 评论 -
图解Java设计模式之命令模式
图解Java设计模式之命令模式智能生活项目需求命令模式基本介绍命令模式的原理类图智能生活项目需求看一个具体的需求我们买类一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装app就可以控制对这些家电工作。这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个App,分别控制,我们希望只要一个App就可以控制全部智能家电。要实现一个app控制所有智能家电的需要,则每个...原创 2020-03-28 16:37:20 · 443 阅读 · 0 评论 -
图解Java设计模式之模板模式
图解Java设计模式之模版模式豆浆制作问题模版方法模式基本介绍模版方法模式原理类图模版方法模式解决豆浆制作问题模版方法模式的钩子方法豆浆制作问题1)制作豆浆的流程 选材 – 》添加配料 --》浸泡 --》放到豆浆机打碎2)通过添加不同的配料,可以制作出不同口味的豆浆3)选材、浸泡和放到豆浆机打碎这几个步骤对于每种口味的豆浆都是一样的4)模版方法模式比较简单,很容易就想到这个方案,因此就直...原创 2020-03-27 17:36:18 · 396 阅读 · 0 评论 -
图解Java设计模式之代理模式
图解Java设计模式之代理模式代理模式的基本介绍静态代理模式的基本介绍应用实例静态代理优缺点动态代理模式的基本介绍JDK中生成代理对象的API动态代理应用实例代理模式的基本介绍1)代理模式 :为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象。这样做的好处是 :可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。2)被代理的对象可以是远程对象、创建开...原创 2020-03-26 16:02:52 · 401 阅读 · 0 评论 -
图解Java设计模式之享元模式
图解Java设计模式之享元模式展示网站项目需求传统方案解决网站展现项目传统方案解决网站展现项目 - 问题分析享元模式基本介绍享元模式原理类图内部状态和外部状态享元模式解决网站展现项目享元模式在 JDK - Integer的应用源码分析享元模式的注意事项和细节展示网站项目需求小型的外包项目,给客户 A 做一个产品展示网站,客户 A 的朋友感觉效果不错,也希望做这样的产品展示网 站,但是要求都有些...原创 2020-03-25 19:46:40 · 558 阅读 · 1 评论 -
图解Java设计模式之外观模式
图解Java设计模式之外观模式影院管理项目传统方式解决影院管理传统方式解决影院管理问题分析外观模式基本介绍外观模式原理类图外观模式解决影院管理外观模式的注意事项和细节影院管理项目组建一个家庭影院 :DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为: 直接用遥控器:统筹各设备开关开爆米花机放下屏幕开投影仪开音响开 DVD,选 dvd去拿爆...原创 2020-03-24 20:35:47 · 205 阅读 · 0 评论 -
图解Java设计模式之组合模式
图解Java设计模式之组合模式看一个学校院系展示需求传统方案解决学院院系展示(类图)传统方案解决学校院系展示存在的问题分析组合模式基本介绍组合模式的原理类图组合模式解决学校院系展示的应用实例组合模式在JDK集合的源码分析看一个学校院系展示需求编写程序展示一个学校院系结构 :需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如图 :传统方案解决学院院系展示...原创 2020-03-24 09:57:06 · 482 阅读 · 0 评论 -
图解Java设计模式之装饰者模式
图解Java设计模式之装饰者模式星巴克咖啡订单项目(咖啡馆)方案 1 - 解决星巴克咖啡订单项目方案1 - 解决星巴克咖啡订单问题分析方案 2 - 解决星巴克咖啡订单(好点)方案2 - 解决星巴克咖啡订单问题分析装饰者模式定义装饰者模式原理装饰者模式解决星巴克咖啡订单装饰者模式下的订单 :2份巧克力 + 一份牛奶的LongBlack装饰者模式咖啡订单项目应用实例装饰者模式在JDK应用的源码分析星...原创 2020-03-22 20:38:37 · 290 阅读 · 0 评论 -
图解Java设计模式之桥接模式
图解Java设计模式之桥接模式手机操作问题手机操作问题现在对不同手机类型的不同品牌实现操作编程(比如 :开机、关机、上网、打电话等等),如图 :...原创 2020-03-21 16:51:10 · 383 阅读 · 0 评论 -
图解Java设计模式之适配器模式
图解Java设计模式之适配器模式现实生活中的适配器例子适配器模式基本介绍适配器模式工作原理类适配器模式类适配器模式注意事项和细节对象适配器模式对象适配器模式注意事项和细节接口适配器模式适配器模式在SpringMVC框架应用的源码分析适配器模式的注意事项和细节现实生活中的适配器例子泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器),这样就可以使用了。适配器模式基本介绍1)适配器...原创 2020-03-09 19:49:31 · 428 阅读 · 0 评论 -
图解Java设计模式之建造者模式
图解Java设计模式之建造者模式盖房项目需求盖房项目需求1)需要建房子 :这一过程为打桩、砌墙、封顶2)房子有各种各样的,比如普通房、高楼、别墅,各种房子的过程虽然一样,但是要求不要相同的。...原创 2020-03-09 10:47:52 · 265 阅读 · 0 评论 -
图解Java设计模式之原型模式
图解Java设计模式之原型模式克隆羊的问题原型模式 - 基本介绍原型模式在Spring框架中源码分析浅拷贝的介绍深拷贝基本介绍克隆羊的问题现在有一只羊tom,姓名为 : tom,年龄为 :1,颜色为 :白色,请编写程序创建和tom羊属性完全相同的10只羊。传统方式解决克隆羊的问题package com.example.demo.prototype;public class She...原创 2020-03-03 20:08:18 · 298 阅读 · 0 评论 -
图解Java设计模式之工厂模式
图解Java设计模式之工厂模式简单工厂模式简单工厂模式看一个具体的需求看一个披萨的项目 :要便于披萨种类的扩展,要便于维护1)披萨的种类很多(比如GreekPizz、CheesePizz等)2)披萨的制作有prepare、bake、cut、box3)完成披萨店订购功能。...原创 2020-03-03 14:19:32 · 535 阅读 · 0 评论 -
图解Java设计模式之单例设计模式
图解Java设计模式之概述和分类设计模式介绍设计模式类型设计模式介绍1)设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代码了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。2)设计模式的本质提高软件的维护性、通用性和扩展性,并降低软件的复杂度。3)《设...原创 2020-03-01 15:46:27 · 215 阅读 · 0 评论 -
图解Java设计模式之UML类图
图解Java设计模式之UML类图3.1 UML基本介绍3.1 UML基本介绍1)UML – Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果2)UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和它们之间的关系,比如类、接口、实现、泛化、...原创 2020-02-28 10:36:47 · 4183 阅读 · 1 评论 -
图解Java设计模式之设计模式七大原则
图解Java设计模式之设计模式七大原则2.1 设计模式的目的2.2 设计模式七大原则2.3 单一职责原则2.3.1 基本介绍2.3.2 应用实例2.1 设计模式的目的编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让程序(软件)。具有更好1)代码重用性(即:相同功能的代码,不用多次编写)2)可读性(即:编程规范性,便于其他程...原创 2020-01-29 12:56:59 · 435 阅读 · 0 评论 -
图解Java设计模式之设计模式面试题
图解Java设计模式之设计模式面试题1.1 Java设计模式内容介绍1.1.1 先看几个经典的面试题1.1.2 设计模式的重要性1.1 Java设计模式内容介绍1.1.1 先看几个经典的面试题原型设计模式问题 :1)有请使用UML类图画出原型模式核心角色2)原型设计模式的深拷贝和浅拷贝是什么。并写出深拷贝的两种方式的源码(重写clone方法实现深拷贝、使用序列化来实现深拷贝)3)在S...原创 2020-01-01 21:39:26 · 843 阅读 · 0 评论 -
1. 考虑使用静态工厂方法替代构造方法
一个类允许客户端获取其实例的传统方式是提供一个公共构造方法。其实还有另一种技术应该成为每个程序员工具箱的一部分。一个类可以提供一个公共静态工厂方法,它只是一个返回类实例的静态方法。下面是一个Boolean简单的例子(boolean基本类型的包装类)。此方法将boolean基本类型转换为Boolean对象引用 : public static Boolean valuesOf(...原创 2019-05-20 15:42:59 · 410 阅读 · 0 评论 -
设计模式
将设计者的思维融入大家的学习和工作中,更高层次的思考!创建型模式 : 单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式;结构型模式 : 适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式;行为型模式 : 模板方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,解释器模式,状态模式,策略模式,职责链模式,访问者模式;静态内部类实现方式(...原创 2019-05-14 20:59:12 · 197 阅读 · 0 评论