自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 设计模式总结

文章目录设计模式总结创建型模式结构型模式行为型模式结语设计模式总结现在关于24种设计模式都介绍完了,其中包括GOF提出的23种设计模式和简单工厂模式。每种模式都有一个案例,可能不是每个案例都是这么的贴切、真实,同时每个模式最后都尽量举出了框架中涉及到的代码进行解析,这对于理解每种设计模式还是很有帮助的,下面对这24种模式进行简单的总结。创建型模式模式名称总结简单工厂模式简单工厂模式提供了专门的工厂类用于创建对象,将对象的创建和对象的使用分离开工厂方法模式工厂方法模式是简

2021-01-19 19:35:48 108

原创 访问者模式

文章目录访问者模式案例模式介绍代码改造模式应用总结参考资料访问者模式案例张三所在公司欲为某高校开发一套奖励审批系统,该系统可以实现教师奖励和学生奖励的审批(Award Check),如果教师发表论文数超过10篇或者学生论文超过2篇可以评选科研奖,如果教师教学反馈分大于等于90分或者学生平均成绩大于等于90分可以评选成绩优秀奖。该系统主要用于判断候选人集合中的教师或学生是否符合某种获奖要求。张三想了想就开始动手写起来了。1.首先他定义了一个父类:// 父类,主要存放一些公共字段public cla

2021-01-14 19:35:18 214

原创 模板方法模式

文章目录模板方法模式案例模式介绍代码改造模式应用总结参考资料模板方法模式案例奶茶在生活中是很常见的,很多商场周边都有看到各种奶茶店。下面通过程序来模拟这一过程:1.建立奶茶店类:// 奶茶店public class MilkTeaShop { // 制作椰果奶茶 public void makeCoconutMilkTea() { System.out.println("准备调制杯"); System.out.println("加入牛奶");

2021-01-11 19:35:37 171

原创 策略模式

文章目录策略模式案列模式介绍代码改造代码应用总结参考资料策略模式案列现在的生活中在线支付给我们的生活带来了极大的方便,出门可以不用带钱,只要带上手机出门就可以消费了。而支付方式也是多种多样的,可以选择支付宝,微信,银行卡等多种支付方式。张三所在公司最近就需要根据用户选择的支付方式,去调用不同的支付接口对账户进行扣款,下面是他写的代码:1.直接就是消费者类:// 消费者类public class Consumer { // 设置默认支付方式 private String payTy

2021-01-07 19:56:24 264 1

原创 备忘录模式

文章目录备忘录模式案例模式介绍代码改造模式应用总结参考资料备忘录模式案例张三一天在下班回家后,想放松一下,于是打开了电脑继续昨天没有挑战成功的 Boos 游戏关卡。这个游戏关卡相当的困难,张三已经打了很多天了还是没有挑战成功,但是还好张三可以保存他在挑战 Boss 之前的状态,不然的话他刚刚得到的幸运道具提升的角色状态就会被 Boss 打掉了。下面用代码的形式来模拟这一过程:1.首先是玩家类:/** * 游戏玩家角色类 */public class Player { // 玩家姓名

2021-01-04 20:02:52 99

原创 状态模式

状态模式案例张三所在公司欲开发一款纸牌游戏软件,在该游戏软件中用户角色具有入门级(Primary)、熟练级(Secondary)和高手级(Professional)三种等级,角色的等级与其积分相对应,游戏胜利将增加积分,失败则扣除积分。入门级具有最基本的游戏功能 ,熟练级增加了游戏胜利积分加倍功能,高手级在熟练级基础上再增加换牌功能。用程序来表示如下:1.首先定义了 Player 类:public class Player { // 初始积分为 0 private int integ

2020-12-29 19:25:04 544

原创 观察者模式

文章目录观察者模式案例模式介绍代码改造模式应用总结参考资料观察者模式案例张三他们最近把项目忙完了,公司也暂时没有其他的事做。所以大家在上班的时候都比较悠闲,但是组长说老板今天回来巡查工作情况,大家在老板来的时候注意一下就可以了。大家一听就默默的开始了自己的上班摸鱼模式。过了一会老板果然过来了,大家看到老板过来后调整一下姿势,开启认真工作模式。下面用代码的形式来模拟这一过程:1.首先定义两个类:员工类:public class Employee { private String name;

2020-12-28 20:19:36 122

原创 中介者模式

文章目录中介者模式案例模式介绍代码改造模式应用总结参考资料中介者模式案例张三最近非常的忙,因为他们公司接到了新的项目。虽然他只是一个程序员,然而在写代码的同时,更多的时间都在沟通项目的问题。比如:产品经理要和他对需求,UI设计师要和他沟通特殊的界面设计程序好不好实现,他自己还要写代码,每天都工作到很晚 (╯^╰)。就像是下面的程序一样:1.定义程序员类:public class Programmer { private String name; private UIDesigner

2020-12-22 19:38:06 158

原创 迭代器模式

文章目录迭代器模式案例模式介绍代码改造模式应用总结参考资料迭代器模式案例最近张三在书店上班,老板有着两家书店。一天老板让他把书店 A 和书店 B 中存放的书籍罗列出来。他来到两个书店发现两个书店存放书籍的格式是不一样的,其中书店 A 内部采用数组的形式,书店 B 采用链表的形式。现在他需要根据不同的格式进行遍历罗列,程序类似下面这样:1.首先定义书籍实体类/** * 书籍类 */public class Book { private String bookName; pub

2020-12-17 20:30:41 111

原创 解释器模式

文章目录解释器模式案例模式介绍代码改造模式应用总结参考资料解释器模式案例张三公司最近需要开发一款简单的加法/减法解释器,只要输入一个加法/减法表达式,它就能够计算出表达式结果,当输入字符串表达式为“1+2+3+4-5”时,将输出计算结果为3。很快张三就写了出来:1.计算表达式类:public class Calculator { public int calculate(String expression) { String[] expressionArray = expr

2020-12-15 20:03:43 267

原创 命令模式

文章目录命令模式案例模式介绍代码改造模式应用总结参考资料命令模式案例一天张三发了奖金,决定今天不做饭,到外面去吃,体验一下被服务的感觉。于是就到楼下李四的餐馆去吃饭,他看着李四拿来的菜单,上面写着:炒菜凉菜回锅肉凉拌三丝土豆丝酿黄瓜。。。。。。然后他就让李四做了回锅肉和凉拌三丝两个菜,李四就按照他点的才去做了。李四在做菜的时候,张三就想着把这一过程用代码的方式表达出来:1.首先创建厨师类:/** * 厨师类 */public class Chef

2020-12-14 19:59:32 106

原创 职责链模式

文章目录职责链模式案例模式介绍代码改造模式应用总结参考资料职责链模式案例张三家里有事需要请假,然后他就拿着假条找项目经理请假去了。而公司规定请假天数小于等于3天,项目经理可以审批该假条;如果员工请假天数大于3天,小于等于5天,部门经理可以审批;如果员工请假天数大于5天需要总经理可以审批,下面我们先使用简单的代码模拟这一过程:1.首先定义了一个请假申请处理类:/** * 处理请假申请类 */public class LeaveApplyHandler { private Random

2020-12-10 19:53:41 264 1

原创 代理模式

文章目录代理模式案例模式介绍代码改造模式应用总结参考资料代理模式案例张三在北京上班,最近有事要回老家上海。于是他想着去火车站买票,接下来就简单的模拟这一过程。1.创建火车站的类:/** * 模拟火车站,提供购票的方法 */public class TrainStation { public String buy(String start, String end) { return "车票:[起点:" + start + "\t终点:" + end + "]";

2020-12-07 20:03:38 98

原创 享元模式

文章目录享元模式案例模式介绍代码改造模式应用总结参考资料享元模式案例张三和李四刚刚考完期中考试的语文和数学,但不是很理想。老师在课堂的讲的感觉还不是很懂,所以想找老师要答案仔细看看解题过程。接下来就用程序来模拟这一过程,假设考了语文和数学两个科目。1.首先定义两个试卷类:语文试卷类:/** * 语文试卷答案类 */public class ChineseTestAnswer { // 试卷答案内容 private String answer; public Chi

2020-11-17 19:34:55 122

原创 外观模式

文章目录外观模式案例模式介绍代码改造模式应用总结参考资料外观模式案例张三没事的时候就喜欢在家看电影,而且还有投影仪,把窗帘一拉,电灯一关,瞬间就有电影院的感觉。下面就用代码来模拟这一过程。1.根据面向对象的思想,这里创建了四个类:窗帘类:/** * 窗帘 */public class Curtain { public void draw() { System.out.println("放下窗帘"); }}电灯类:/** * 电灯 */publi

2020-11-16 19:43:41 159

原创 装饰者模式

文章目录装饰者模式案例模式介绍代码改造模式应用总结参考资料装饰者模式案例喝奶茶是平时很常见的一件事情,奶茶中有牛奶,珍珠和椰果等等很多的材料,我们可以根据自己的喜爱来进行选择。我们给店家说过我们想要的奶茶材料后,店家根据我们选择的奶茶材料除了需要进行调制以外,最重要的就是根据材料进行算账了,下面我们就来模拟这一过程。1.各种材料:水/** * 原料水 */public class Water { private int money = 1; public Water() {

2020-11-12 20:21:36 114

原创 组合模式

组合模式案例我们想开发一个界面控件库,界面控件分为两大类,一类是单元控件,例如按钮、文本框等,一类是容器控件,例如面板。面板界面内可以放入单元控件和其他面板。这样最终得到一个类似窗体的样子。下面就用代码模拟这一过程。1.首先定义一个面板类:/** * 面板内,可以添加按钮、文本框和其他的面板 */public class Panel { private String name; // 存放面板的容器 private List<Panel> panelList

2020-11-10 20:55:04 532

原创 桥接模式

文章目录桥接模式案例模式介绍代码改造模式应用总结参考资料桥接模式案例公司欲开发一个数据转换工具,可以将数据库中的数据转换成多种文件格式,例如txt、xml、pdf等格式,同时该工具需要支持多种不同的数据库。下面我们先通过继承的方式来完成这一目的:1.首先定义了一个抽象类:/** * 文件父类 */public abstract class File { public abstract void translate();}2.两个转化为不同格式的子类:txt 格式/** *

2020-11-09 20:06:24 811

原创 适配器模式

适配器模式案例一天,张三把自己的iPhone手机玩的没电了想找充电器,但是完了带数据线。而李四有数据线,只不过是TypeC接口的,张三用不了,就不能继续愉快的玩耍了。下面我们来模拟出描述的内容:1.首先定义了三个实体类:TyecC数据线接口类:/** * TypeC接口 */public class TypeC { private String username; public TypeC(String username) { this.username =

2020-11-05 19:26:32 130

原创 建造者模式

建造者模式案例生活中有一个常见的例子,没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎和方向盘等多个部件的完整汽车。如何将这些部件组装成一辆完整的汽车并返回给用户呢,下面我们用程序来模拟一下这一过程。1.首先是汽车、轮胎和方向盘三个实体类:汽车类/** * 汽车 */public class Car { // 方向盘 private SteeringWheel steeringWheel; // 轮胎 private Doughnut doughn

2020-11-03 19:55:53 159

原创 原型模式

原型模式案例公司使用自行开发的一套系统进行日常工作办理,但在使用过程中,我们需要每周上传周报总结工作内容。基于此,我们简单的通过代码模拟这一过程。1.首先定义一个周报类:public class WeeklyReport { // 填写人 private String name; // 周报内容 private String content; // 上报时间 private String date; @Override public

2020-11-01 14:43:48 179 3

原创 单例模式

文章目录单例模式案例模式介绍代码改造模式应用总结参考资料单例模式案例我们要开发一款电脑端的应用出来,它可以安装在手机上,然后进行使用。下面我们写出一些简单的代码:1.首先是这款应用:/** * 模拟开发了一款应用程序 */public class App { public void open() { System.out.println("软件打开中~~"); }}2.模拟使用应用:/** * 模拟客户端使用软件 */public class M

2020-10-29 19:50:54 178 2

原创 抽象工厂模式

文章目录抽象工厂模式案例模式介绍代码改造模式应用总结参考资料抽象工厂模式案例我们要开发一套界面皮肤库,对界面进行美化。用户通过选择不同的皮肤,实现界面中元素颜色的相应变化。其中这个界面可能有:按钮、窗口、图标等等组件,而客户通过切换皮肤可以显示不同颜色的组件样式。接下来让我们试着用工厂方法模式的思路来开发两款皮肤(蓝色经典/绿色护眼)来:1.首先分别定义两种抽象产品及其实现类:抽象窗口类:/** * 抽象的产品类:窗口 */public interface Window { voi

2020-10-26 20:33:15 165 2

原创 工厂方法模式

文章目录工厂方法模式案例模式介绍代码改造模式应用总结参考资料工厂方法模式案例我们有一个生产镜子工厂,工厂里可以生产圆形和方形镜子,顾客通过选择来使用不同的镜子。我们怎么通过程序来表示出这个过程呢?通过上一节的介绍,我们很快想到通过简单工厂模式的思路来解决这个问题:1.首先有一个抽象的产品类:/** * 抽象的产品类:镜子 */public interface Mirror { void look();}圆形镜子产品类:/** * 具体的产品类:圆形镜子 */publ

2020-10-22 21:28:42 200

原创 简单工厂模式

简单工厂模式文章目录简单工厂模式案例模式介绍代码改造模式应用总结参考资料案例试想这样一个场景:要求通过控制台或文件来记录日志。遇到这样的问题,通过面相对象的思考方式,很容易就可以写出下面的代码来:1.首先定义一个接口:/** * 日志记录器 */public interface Logger { void log(String info);}2.控制台记录器实现类:/** * 控制台记录器 */public class ConsoleLogger implements

2020-10-20 20:55:57 120

原创 设计模式概述

文章目录设计模式介绍面向对象设计原则记得第一次知道设计模式这个词还是听到别人说的–单例模式是设计模式的一种。当时完全不理解设计模式是什么意思,然后在网上一搜就能看到很多相关的文章,看了一些之后还是不太明白,就看过就过了。后来接触一些框架之后,想要深入了解一下时又看到网上说这个框架里面包含了什么什么模式,那个框架里面运用了什么什么模式,顿时觉得设计模式既然在这么多的框架中都有用到,就想着一定要学习一下。既然是学习那么肯定要记录下来,方便随时回顾,因此开启了设计模式的学习之路。设计模式介绍从网上了解到最早

2020-10-19 20:43:41 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除