![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
@java小白
Software Developer Engineer
展开
-
设计模式笔记十二 模板模式
豆浆制作问题编写制作豆浆的程序,说明如下:制作豆浆的流程 选材—>添加配料—>浸泡—>放到豆浆机打碎通过添加不同的配料,可以制作出不同口味的豆浆选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的请使用 模板方法模式 完成 (说明:因为模板方法模式,比较简单,很容易就想到这个方案,因此就直接使用, 不再使用传统的方案来引出模板方法模式 )模板方...原创 2020-03-13 15:14:16 · 181 阅读 · 0 评论 -
设计模式笔记十一 代理模式
代理模式(Proxy)代理模式的基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK 代理、接口代理)和 Cglib 代理 (可以...原创 2020-03-13 09:43:04 · 112 阅读 · 0 评论 -
设计模式笔记十 享元模式
展示网站项目需求小型的外包项目,给客户 A 做一个产品展示网站,客户 A 的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:有客户要求以新闻的形式发布有客户人要求以博客的形式发布有客户希望以微信公众号的形式发布传统方案解决网站展现项目直接复制粘贴一份,然后根据客户不同要求,进行定制修改给每个网站租用一个空间方案设计示意图传统方案解决网站展现项目-问题分...原创 2020-03-11 19:41:41 · 106 阅读 · 0 评论 -
设计模式笔记九 外观模式
影院管理项目组建一个家庭影院:DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为: 直接用遥控器:统筹各设备开关开爆米花机放 下 屏 幕 开 投 影 仪 开音响开 DVD,选 dvd去拿爆米花调 暗 灯 光 播放观影结束后,关闭各种设备传统方式解决影院管理传统方式解决影院管理问题分析在 ClientTest 的 main 方法中,创建...原创 2020-03-11 19:30:38 · 112 阅读 · 0 评论 -
设计模式笔记八 组合模式
学校院系展示需求看一个学校院系展示需求编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。传统方案解决学校院系展示存在的问题分析将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的实际上我们的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系, 因此这种方案,不能...原创 2020-03-10 22:02:09 · 107 阅读 · 0 评论 -
设计模式笔记七 装饰者模式
星巴克咖啡订单项目(咖啡馆):咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)调料:Milk、Soy(豆浆)、Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用 OO 的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖啡+调料组合。方案 1-解决星巴克咖啡...转载 2020-03-09 17:12:01 · 113 阅读 · 0 评论 -
设计模式笔记六 桥接模式
手机操作问题现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图:传统方案解决手机操作问题传统方法对应的类图传统方案解决手机操作问题分析扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。违反了单一职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这样...原创 2020-03-09 15:39:17 · 133 阅读 · 0 评论 -
设计模式笔记四 适配器模式
基本介绍适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原理适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容从用户的角度看不到...原创 2020-03-09 15:17:08 · 197 阅读 · 0 评论 -
设计模式笔记五 建造者模式
盖房项目需求需要建房子:这一过程为打桩、砌墙、封顶房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的.请编写程序,完成需求.传统方式的问题分析优点是比较好理解,简单易操作。设计的程序结构,过于简单,没有设计缓存层对象,程序的扩展和维护不好. 也就是说,这种设计方案,把产品(即:房子) 和 创建产品的过程(即:建房子流程) 封装在一起,耦合...原创 2020-03-04 12:53:31 · 129 阅读 · 0 评论 -
设计模式笔记四 原型模式
原型模式-基本介绍基本介绍原型模式(Prototype 模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone()形象的理解:孙大圣拔出猴...原创 2020-03-03 21:34:53 · 96 阅读 · 0 评论 -
设计模式笔记三 抽象工厂模式
看一个披萨的项目:要便于披萨种类的扩展,要便于维护披萨的种类很多(比如 GreekPizz、CheesePizz 等)披萨的制作有 prepare,bake, cut, box完成披萨店订购功能。使用传统的方式来完成思路分析(类图)传统的方式的优缺点优点是比较好理解,简单易操作。缺点是违反了设计模式的 ocp 原则,即对扩展开放,对修改关闭。即当我们给类增加新功能的时候...原创 2020-03-02 17:18:04 · 140 阅读 · 0 评论 -
设计模式笔记二 单例模式
懒汉式package com.up;/** * 懒汉式 * */public class Bank { //1.私有化构造器 public Bank(){ } //2.声明当前类的对象,没有初始化 //4.此对象也必须声明为private static的 private static Bank instance = null;//这里要变成空的 //3...原创 2019-07-19 13:20:24 · 155 阅读 · 0 评论 -
UML 类图
UML基本介绍UML——Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等:使用UML来建模,常用的工具有 RationalR...原创 2020-03-01 16:52:23 · 195 阅读 · 0 评论 -
依赖倒转原则
依赖倒转原则为设计模式七大原则中的一个。基本介绍依赖倒转原则(Dependence Inversion Principle)是指:高层模块不应该依赖低层模块,二者都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象依赖倒转(倒置)的中心思想是面向接口编程依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构...原创 2020-02-29 13:17:05 · 364 阅读 · 0 评论 -
设计模式 笔记一
设计模式的目的编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好代码重用性 (即:相同功能的代码,不用多次编写)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)使程...原创 2020-02-28 11:38:53 · 198 阅读 · 0 评论