随笔分类 -  Java设计模式

摘要:1. 智能生活项目需求 看一个具体的需求 1) 我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只要在手机上安装app就可以控制对这些家电 工作。 2) 这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个App,分别控制,我们希望只要一个app 就可以控制全部智能家电。 3) 要实 阅读全文
posted @ 2020-04-16 10:10 渣爷
摘要:1. 豆浆制作问题 编写制作豆浆的程序,说明如下: 1. 制作豆浆的流程选材 添加配料 浸泡 放到豆浆机打碎 2. 通过添加不同的配料,可以制作出不同口味的豆浆 3. 选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的 4. 请使用 模板方法模式 完成 (说明:因为模板方法模式,比 阅读全文
posted @ 2020-04-16 09:57 渣爷
摘要:1. 展示网站项目需求 小型的外包项目,给客户 A 做一个产品展示网站,客户 A 的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同: 1. 有客户要求以新闻的形式发布 2. 有客户人要求以博客的形式发布 3. 有客户希望以微信公众号的形式发布 2.传统方案解决网站展现项目 1. 直 阅读全文
posted @ 2020-04-13 22:04 渣爷
摘要:代理模式(Proxy) 代理模式的基本介绍 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处 是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象 代理模式有不同 阅读全文
posted @ 2020-04-13 16:32 渣爷
摘要:1. 影院管理项目 组建一个家庭影院: DVD 播放器、投影仪、自动屏幕、环绕立体声、爆米花机,要求完成使用家庭影院的功能,其过程为: 直接用遥控器:统筹各设备开关 开爆米花机 放下屏幕 开投影仪 开音响 开 DVD,选 dvd 去拿爆米花 调暗灯光 播放 观影结束后,关闭各种设备 2. 传统方式解 阅读全文
posted @ 2019-08-20 10:00 渣爷
摘要:1. 看一个学校院系展示需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系 组成,一个学校有多个学院,一个学院有多个系。如图: 2. 传统方案解决学校院系展示(类图) 3. 传统方案解决学校院系展示问题分析 1)将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织 阅读全文
posted @ 2019-08-15 11:29 渣爷
摘要:1. 手机操作问题 现在对不同手机类型的 不同品牌实现操作编程(比如: 开机、关机、上网,打电话等), 如图: 2. 传统方案解决手机操作问题 传统方案解决手机使用问题(类图): 3. 传统方案解决手机操作问题分析 1)扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品 牌手 阅读全文
posted @ 2019-08-14 15:53 渣爷
摘要:现实生活中的适配器例子 泰国旅游使用插座问题 泰国插座用的是两孔的(欧标),可以买个多功能转换插头 (适配器) ,这样就可以 使用了。 适配器模式基本介绍 基本介绍 1)适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表 示,主的目的是兼容性,让原本因接口不匹配 阅读全文
posted @ 2019-08-14 14:44 渣爷
摘要:盖房子项目需求 1)需要建房子:这一过程为打桩、砌墙、封顶 2)房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求是不同的。 需求分析(类图) 传统方式解决 package com.atguigu.builder; public abstract class Abstract 阅读全文
posted @ 2019-07-26 10:42 渣爷
摘要:克隆羊问题 现在有一只羊tom,姓名为:tom,年龄为:1,颜色为:白色,请编写程序创建和tom 羊属性完全相同的10只羊。 传统方式解决克隆羊问题 思路分析(图解) 代码演示 package com.atguigu.prototype; public class Sheep { private S 阅读全文
posted @ 2019-07-25 16:16 渣爷
摘要:基本介绍 1)抽象工厂模式:定义了一个 interface 用于创建相关或有依赖关系的对象簇,而无需指明具体的类 2)抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合。 3)从设计层面看,抽象工厂模式主是对简单工厂模式的改进(或者称为进一步的抽象)。 4)将工厂抽象成两层,AbsFactory( 阅读全文
posted @ 2019-07-25 14:01 渣爷
摘要:工厂方法模式 基本介绍 工厂方法模式设计方案:将披萨项目的实例化功能抽象成抽象方法,在不同的口味点餐子类中具体实现。 工厂方法模式:定义了一个创建对象的抽象方法,由子类决定要实例化的类。工厂方法模式将对象的实例化推迟到子类。 应用案例 披萨项目新的需求:客户在点披萨时,可以点不同口味的披萨,比如 北 阅读全文
posted @ 2019-07-25 11:55 渣爷
摘要:看一个具体的需求 一个披萨的项目:要便于披萨种类的扩展,要便于维护 1)披萨的种类很多(比如:GreekPizz、CheesePizz等 ) 2)披萨的制作有 prepare,bake,cut,box 3)完成披萨店订购功能。 使用传统的方式来完成 思路分析(类图) 项目架构 Pizza是披萨的基类 阅读全文
posted @ 2019-07-24 17:43 渣爷
摘要:单例设计模式介绍 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类 只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session 对象。SessionFact 阅读全文
posted @ 2019-07-24 15:54 渣爷
摘要:设计模式介绍 设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验, 模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern) 代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时 间的试验和错误总结出来的。 设计模式的本质提高 软件的维护性,通用 阅读全文
posted @ 2019-07-24 11:06 渣爷
摘要:UML基本介绍 1)UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果 2)UML本身是一套符号的规定,就像数学 符号和化学符号一样,这些符号用于描 述软件模型中的各个元素和他 阅读全文
posted @ 2019-07-23 17:32 渣爷
摘要:1. 设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好的 1) 代码重用性 (即:相同功能的代码,不用多次编写) 2) 可读性 (即:编程规范性, 便于其他程序员的阅读和理解) 3) 可扩展 阅读全文
posted @ 2019-07-12 16:35 渣爷