
设计模式
文章平均质量分 90
upupxi
缓慢而坚定的成长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式-解释器模式
前言: Sunny软件公司欲为某玩具公司开发一套机器人控制程序,在该机器人控制程序中包含一些简单的英文控制指令,每一个指令对应一个表达式(expression),该表达式可以是简单表达式也可以是复合表达式,每一个简单表达式由移动方向(direction),移动方式(action)和移动距离(distance)三部分组成,其中移动方向包括上(up)、下(down)、左(left)、右(right);移动方式包括移动(move)和快速移动(run);移动距离为一个正整数。两个表达式之间可以通过与(and)连接,原创 2022-02-07 17:34:31 · 292 阅读 · 0 评论 -
设计模式-代理模式
1、概念 为其他对象提供一种代理以控制这个对象的访问,在某些情况下一个对象不能直接访问那个对象时,代理就起到了客户端和被代理对象(委托类)中介作用。 代理类和委托类都有同样接口。 可以不用动原来类的逻辑,再次增加一些功能,符合开闭原则。真正的业务还是交给被代理对象处理的,因此在其委托被代理对象处理业务前后实现一些公共逻辑服务,例如加入缓存或日志等功能,无须修改原来的类就可以使用代理进行实现。 2、示例程序 静态代理模式: 类图: Printable: 代理类和被代理类实现同样的接口 PrintProxy:原创 2022-02-07 16:45:49 · 504 阅读 · 0 评论 -
设计模式-享元模式
1、概念 FlyWeight是”轻量级“的意思,指的是拳击比赛中选手体重最轻的等级。顾名思义,该设计模式的作用是为了让对象变”轻“。 对象在计算机中是虚拟存在的东西,它的”重“和”轻“并非指实际的重量,而是它们”所使用的内存大小“,使用内存多的就是”重对象“,使用内存少的就是”轻“对象。 在Java中,可以通过以下语句生成Something类的实例。 new Something() 为了能够在计算机中保存该对象那个,需要分配给其足够的内存空间,当程序中需要大量对象的时候,如果都使用new关键字来分配内存,原创 2022-02-07 16:18:33 · 422 阅读 · 0 评论 -
设计模式-迭代器模式
1、引言 在软件开发中,也存在大量类似电视机一样的类,它们可以存储多个成员对象(元素),这些类通常称为聚合类(Aggregate Classes),对应的对象称为聚合对象。 聚合对象:聚合对象拥有两个职责:一是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被称之为“迭代器”的对象中,由迭代器来提供遍历聚合对象内部数据的行为,这将简化聚合对象的设计,更符合“单一职责原则”的要求。 迭代器模式将为聚合对原创 2021-11-04 10:58:20 · 291 阅读 · 0 评论 -
设计模式-构建者模式
意图 构造者模式(建造者模式、生成器模式)是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 问题 假设有这样一个复杂对象, 在对其进行构造时需要对诸多成员变量和嵌套对象进行繁复的初始化工作。 这些初始化代码通常深藏于一个包含众多参数且让人基本看不懂的构造函数中; 甚至还有更糟糕的情况, 那就是这些代码散落在客户端代码的多个位置。 例如, 我们来思考如何创建一个 房屋House对象。 建造一栋简单的房屋, 首先你需要建造四面墙和地板, 安装房门和原创 2021-08-23 14:03:56 · 495 阅读 · 0 评论 -
设计模式-策略模式
《Java设计模式》 前言: 俗话说:条条大路通罗马。在很多情况下,实现某个目标的途径不止一条,例如我们在外出 旅游时可以选择多种不同的出行方式,如骑自行车、坐汽车、坐火车或者坐飞机,可根据实 际情况(目的地、旅游预算、旅游时间等)来选择一种最适合的出行方式。在制订旅行计划 时,如果目的地较远、时间不多,但不差钱,可以选择坐飞机去旅游;如果目的地虽远、但 假期长、且需控制旅游成本时可以选择坐火车或汽车;如果从健康和环保的角度考虑,而且 有足够的毅力,自行车游或者徒步旅游也是个不错的选择,大笑。 在软件开.原创 2021-12-31 15:32:47 · 608 阅读 · 0 评论