设计模式
JustSleep
这个作者很懒,什么都没留下…
展开
-
模板方法模式
1、问题介绍编写制作豆浆的程序,说明如下: 1) 制作豆浆的流程 选材--->添加配料--->浸泡--->放到豆浆机打碎 2) 通过添加不同的配料,可以制作出不同口味的豆浆 3) 选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的 4) 请使用 模板方法模式 完成 (说明:因为模板方法模式,比较简单,很容易就想到这个方案,因此就直接使用,不再使用传统的方案来引出模板方法模式 )2、原理图基本思想是:算法只存在于一个地方,也就是在父类中,.原创 2020-05-11 16:13:54 · 192 阅读 · 0 评论 -
观察者模式
1、项目需求天气预报项目需求,具体要求如下: 1) 气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。 2) 需要设计开放型API,便于其他第三方也能接入气象站获取数据。3) 提供温度、气压和湿度的接口 4) 测量数据更新时,要能实时的通知给第三方2、观察者模式基本概念:观察者模式:对象之间多对一依赖的一种设计方案,被依赖的对象为Subject,依赖的对象为Observer,Subject通知Observer变化,比如.原创 2020-05-11 14:48:30 · 158 阅读 · 0 评论 -
代理模式
1、基本介绍代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK代理、接口代理)和 Cglib代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。2、静态代理静态代理在使用时,需要定义接口或者父类,被代理对象(即原创 2020-05-11 11:33:33 · 143 阅读 · 0 评论 -
装饰者模式
1、原始问题星巴克咖啡项目:1) 咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡) 2) 调料:Milk、Soy(豆浆)、Chocolate3) 使用OO的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖 啡+调料组合。方案一:容易出现类爆炸每种组合抽象出一个类来。方案二:可以做改进,将调料内置到Drink类,这样就不会造成类数量过多。从而提高项目的维护性缺点:在增加..原创 2020-05-10 13:23:46 · 151 阅读 · 0 评论 -
适配器模式
1、适配器模式适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原理:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容。目标是解耦。用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法。比如:原始电压(被适配者)->充电插头(适配器)->手机需要的5v电压(目标)2原创 2020-05-10 09:32:44 · 120 阅读 · 0 评论 -
原型模式
1、基本介绍用原型实例指定创建对象的种类,并且通过拷 贝这些原型,创建新的对象。工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone()。但是需要实现clone的Java类必须要实现一个接口Cloneable, 该接口表示该类能够复制且具有复制的能力 => 原型模式。2、浅拷贝1)对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。 2) 对于数据类型是原创 2020-05-09 17:30:00 · 135 阅读 · 0 评论 -
工厂模式
1、简单工厂模式简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式。简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码)UML类图2、工厂方法模式工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类。...原创 2020-05-09 15:33:10 · 121 阅读 · 0 评论 -
单例模式
1、定义所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 2、体现单例模式有八种方式: 1) 饿汉式(静态常量) 2) 饿汉式(静态代码块) 3) 懒汉式(线程不安全) 4) 懒汉式(线程安全,同步方法) 5) 懒汉式(线程安全,同步代码块) 6) 双重检查 7...原创 2020-05-07 19:06:25 · 154 阅读 · 0 评论 -
UML类图及设计模式简介
1、UML——Unified modeling language UML (统一建模语言),是一种用于软件系统 分析和设计的语言工具,它用于帮助软 件开发人员进行思考和记录思路的结果。说明:类图是描述类与类之间的关系的,是UML图中最核心的用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合 ...原创 2020-05-09 15:33:46 · 1256 阅读 · 0 评论