2022年5月13日

摘要: 1.概述定义: 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 2.结构访问者模式包含以下主要角色: 抽象访问者(Visitor)角色:定义了对每一个元素(Element)访问的行为,它的参数就是可以访问的元素,它的方法个数理论上来讲与元 阅读全文
posted @ 2022-05-13 15:04 zzsuje 阅读(32) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等,其中 阅读全文
posted @ 2022-05-13 15:02 zzsuje 阅读(15) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述 先看下面的图片,我们去旅游选择出行模式有很多种,可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿,开发需要选择一款开发工具,当然可以进行代码开发的工具有很多,可以选择Idea进行开发,也可以使用eclipse进行开发,也可以使用其他的一些开发工具 定义: 该模式定义了一系 阅读全文
posted @ 2022-05-13 14:59 zzsuje 阅读(23) 评论(0) 推荐(0) 编辑
 
摘要: 设计模式—状态模式 1.概述 【案例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门操作。 类图如下 实现代码 publi 阅读全文
posted @ 2022-05-13 14:58 zzsuje 阅读(36) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述定义: 又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。 2.结构在观察者模式中有如下角色: Subject:抽象主题(抽象被观察者) 阅读全文
posted @ 2022-05-13 14:56 zzsuje 阅读(90) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,很多软件都提供了撤销(Undo)操作,如 Word、记事本、Photoshop、IDEA等软件在编辑时按 Ctrl+Z 组合键时能撤销当前操 阅读全文
posted @ 2022-05-13 13:56 zzsuje 阅读(38) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述一般来说,同事类之间的关系是比较复杂的,多个同事类之间互相关联时,他们之间的关系会呈现为复杂的网状结构,这是一种过度耦合的架构,即不利于类的复用,也不稳定。例如在下左图中,有六个同事类对象,假如对象1发生变化,那么将会有4个对象受到影响。如果对象2发生变化,那么将会有5个对象受到影响。也就是 阅读全文
posted @ 2022-05-13 13:54 zzsuje 阅读(22) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述 定义: 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 2.结构迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口。具体聚合(ConcreteAggregate)角色:实现抽象聚合类,返回一个具 阅读全文
posted @ 2022-05-13 13:52 zzsuje 阅读(32) 评论(0) 推荐(0) 编辑
 
摘要: 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 //用于两个整数相加public static int add(int a,int b){ return a + b;} //用于两个整数相加public static int add(int a,i 阅读全文
posted @ 2022-05-13 11:52 zzsuje 阅读(18) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述 日常生活中,我们出去吃饭都会遇到下面的场景。 定义 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行存储、传递、调用、增加与管理。 2.结构 命令模式包含以下主要角色: 抽象命令类(Command)角色: 定义命令的 阅读全文
posted @ 2022-05-13 11:50 zzsuje 阅读(30) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象的处理条件或权限不同。例如,公司员工请假,可批假的领导有部门负责人、副总经理、总经理等,但每个领导能批准的天数不同,员工必须根据自己要请假的天数去找不同的领导签名,也就是说员工必须记住每个领导的姓名、电话和地址等信息, 阅读全文
posted @ 2022-05-13 11:49 zzsuje 阅读(30) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述 定义 运用共享技术来有效地支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量、避免大量相似对象的开销,从而提高系统资源的利用率。通过共享的方式高效的支持大量细粒度的对象。 主要解决 在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同 阅读全文
posted @ 2022-05-13 11:48 zzsuje 阅读(32) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以 阅读全文
posted @ 2022-05-13 11:46 zzsuje 阅读(35) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。试想,在一个有多种可能会变化的维度的系统中,用继承方式会造成类爆炸,扩展起来不灵活。每次在一个维 阅读全文
posted @ 2022-05-13 11:01 zzsuje 阅读(58) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述举个例子 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 上图是使用继承的类图,使用继承的方式存在的问题: 扩展性不好如果要再加一种配料(火腿肠),我们就会发现需要给FriedRice和Fr 阅读全文
posted @ 2022-05-13 10:33 zzsuje 阅读(47) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述如下图所示,为了使得三孔的插座能够被常规的两个接线柱的插头使用,得需要使用一个交流电适配器来进行转换。 又比如手机充电器能将220V得电压转换为5V适合手机充电‘、读卡器等等生活中常见得就是使用到了适配器模式。 定义: 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能 阅读全文
posted @ 2022-05-13 10:30 zzsuje 阅读(29) 评论(0) 推荐(0) 编辑
 
摘要: 1. 概述1.1 结构型模式结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构 阅读全文
posted @ 2022-05-13 10:29 zzsuje 阅读(24) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述通过复制现有实例来创建新的实例,无需知道相应类的信息。用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。 简单地理解,其实就是当需要创建一个指定的对象时,我们刚好有一个这样的对象,但是又不能直接使用,我会clone一个一毛一样的新对象来使用;基本上这就是原型模 阅读全文
posted @ 2022-05-13 10:16 zzsuje 阅读(83) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。 分离了部件的构造(由Builder来负责)和装配(由Director负责)。 从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况。由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的 阅读全文
posted @ 2022-05-13 10:13 zzsuje 阅读(19) 评论(0) 推荐(0) 编辑
 
摘要: 1.概述定义: 确保一个类最多只有一个实例,并提供一个全局访问点单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类 阅读全文
posted @ 2022-05-13 10:11 zzsuje 阅读(24) 评论(0) 推荐(0) 编辑