设计模式
文章平均质量分 87
23种设计模式
枫蜜柚子茶
这个作者很懒,什么都没留下…
展开
-
【大话设计模式】UML图以及六种常见类间关系
一、 UML类图示例构成要素: 类第一行:类名称第二行:特性(字段或属性)第三行:操作(方法或行为)注意属性和方法前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。接口矩形表示法,顶端<<interface>>第一行:接口方法名称第二行:接口方法二、六种类间关系在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realizatio...原创 2022-01-19 21:45:34 · 1847 阅读 · 0 评论 -
【大话设计模式】模式一 :单例模式与多线程
一、基本介绍单例模式(Singleton),保证一个类仅仅有一个实例,并且提供一个访问它的全局访问点。通常我们可以让一个全局变量使其被一个对象访问,但是它不能防止实例化多个对象。最好的方法就是,让类自身负责保存它的唯一实例,同时这个类保证没有其他实例可以被创建,并且它提供了一个访问该实例的方法。模式构成要素:私有构造方法 私有静态引用指向自己的实例 以自己实例为返回值的公有静态方法二、模式应用场景及举例1、适用场景:1.需要生成唯一序列的环境。2.需要频繁实例化然后销毁原创 2022-01-19 21:45:40 · 1417 阅读 · 3 评论 -
【大话设计模式】模式二 :工厂模式
一、模式定义工厂模式(Factory Pattern)是常见的设计模式之一。该模式中,我们在创建对象时不对客户端暴露创建逻辑,并且是通过使用一个公共的接口来创建新的对象,将业务逻辑与界面逻辑分离,降低耦合度。二、简单工厂模式三、工厂方法模式四、抽象工厂模式抽象工厂模式(Abstract Factory),提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。应用场景举例:有华为、苹果两种手机品牌,每种品牌都有产品手机、手表、平板。UM...原创 2022-01-19 21:45:46 · 1901 阅读 · 0 评论 -
【大话设计模式】模式三 :建造者模式与使用Java的GUI绘制火柴人
引入用笔画一个个小人,形状各异,要求小人有胳膊、身体、头部、手脚就可以。但是直接这样去编程有时候会因为疏忽忘记,出现缺手缺脚的情况,就说明这种建造方式不是稳定的。一、定义建造者模式(Builder)将一个复杂对象的创建和它的表示方法分离,使得同样的构建过程可以创建不同的表示。二、组成:1、Product产品类:具体产品2、Builder抽象建造者:为了建造一个Product对象的各个部件指定的抽象接口。3、ConcreteBuilder具体建造...原创 2022-01-25 10:34:55 · 1586 阅读 · 2 评论 -
【大话设计模式】模式四:原型模式与浅谈Cloneable浅复制、深复制
一、原型模式原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式(Prototype)结构图 :Prototype原型类,声明一个克隆自身的接口。ConcretePrototype具体原型类,实现一个克隆自身的接口。【代码实现】:Prototype类public abstract class Prototype { private String id; public Prototype(Stri.原创 2022-01-25 10:32:58 · 962 阅读 · 0 评论 -
【大话设计模式】模式五:适配器模式
【大话设计模式】模式五:适配器模式【引入】适配,这个词语应该不陌生,经常出现在电学里面,家庭电压220V,但是我们的电器,例如手机的充电额定电压很低,电脑的充电电压也不同,但是却要使用同一个电源,适配器就能把电源变成所需要的电压,这就是电源适配器。原创 2022-01-27 23:26:59 · 1275 阅读 · 1 评论 -
【大话设计模式】模式六:组合模式以及其在JDK和Mybatis源码中的应用
总公司和各个分公司在职务功能都类似,但是子公司包含于总公司之中,如下图的结构将对象组合成树形结构以表示“ 部分-整体”的层次结构,这种模式结构称为组合模式。原创 2022-01-28 23:38:45 · 1283 阅读 · 0 评论 -
【大话设计模式】模式七:迭代器模式在JDK源码中应用
【引入】对于容器对象的访问,必然会涉及遍历算法。如果将遍历封装到容器中,对于容器来说,承担的功能有点多。如果让用户自己实现,那又必须暴露容器的内部实现。所以使用迭代器模式,在客户访问类与容器体之间插入一个第三者-迭代器。原创 2022-01-28 23:39:09 · 716 阅读 · 0 评论 -
【大话设计模式】模式八:策略模式
【引入】简单工厂模式只是解决对象的创建问题,每次维护或者扩展都要改动这个工厂,以致代码需要重新编译部署,这不是一种好方法。而且为了创建不同的对象产品使用了switch case(或if else)的形式实现代码,这样违背了开闭原则,即对扩展开放、对修改封闭,维护的成本会随着cese(或else)的增加而增加,而本文的策略模式能较好地解决这个问题。原创 2022-01-28 23:39:02 · 1354 阅读 · 0 评论 -
【大话设计模式】模式九:备忘录模式
【引入】需要保存恢复的场景,可以回滚的操作.比如游戏的存档,你在打Boss之前可以先存一下档,然后这局boss打的不理想,就能恢复到存档的状态。比如浏览网页时跳到下一页,也可以回退到上一页。比如手机APP的一些操作,都可以回退。VS编写代码就可以很好的回退,使用Ctrl+Z ,Ctrl+Y操作,这里需要用到备忘录模式。原创 2022-01-28 23:38:55 · 3915 阅读 · 0 评论 -
【大话设计模式】模式十:中介者模式
【引入】 国与国之间的关系,类似于对象与对象之间的关系,这就要求对象之间需要知道其他所有对象。但是对象之间大量的链接使得一个对象不可能在没有其他对象支持下工作,系统表现为一个不可分割的整体,降低其可复用性。这里提及一下 迪米特法则(即两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用) 如果一个类要调用某个类的方法,可以通过第三方转发这个的调用。正如国与国之间,可以通过联合国这个中介者来发生相互通信。原创 2022-01-29 13:49:34 · 3426 阅读 · 0 评论 -
【大话设计模式】模式十一:装饰模式以及在IO体系中的应用
【引入】当系统需要新功能的时候,是向旧类中添加新的代码。这些新的代码通常装饰了原有的类的核心职责或者主要行为,在主类中加入了新的字段,新的方法和新的逻辑。从而增加了主类的复杂度。相比之下,若要扩展功能,装饰模式提供了比继承更有弹性的替代方案。原创 2022-02-07 23:27:56 · 874 阅读 · 0 评论 -
【大话设计模式】模式十二:代理模式以及JDK动态代理
【引入】生活中经常可以看到代理,想象一下我们生活中购买高铁票的,我们可以通过智行购买车票,也可以到亲自到窗口购买,这其中智行就相当于代理者,这就是代理模式。原创 2022-02-07 23:27:47 · 883 阅读 · 0 评论 -
【大话设计模式】模式十三:模板方法模式以及其在JDK、Tomcat的应用
【引入】考试我们早已经习以为常了,有没有思考过,考试试卷是机子印刷的好处是什么?当然,首先比手写快是肯定的;但是,关键在于不会出错,因为大家的题目都应该是一模一样的。这就是一个进店的设计模式——模板方法模式。原创 2022-02-07 23:27:39 · 1182 阅读 · 3 评论 -
【大话设计模式】模式十四:外观模式
【引入】有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就有许多的基金,它将投资者分散的资金集中起来,交由专业的经理人进行管理,投资于股票、债券、外汇等领域。 其实本篇要说的这个设计模式就和这很有关系,由于当投资者自己买股票时,由于众多投资者对众多股票的联系太多,反而不利于操作,这在软件中就成为耦合性太高原创 2022-02-07 23:27:31 · 661 阅读 · 3 评论 -
【大话设计模式】模式十五:观察者模式以及JDK与生俱来的观察者模式
【引入】就拿Vs2019来说吧,当你点击运行程序之后,运行按键会发生变化,而且对多出来一个错误提示框,其他地方不会发生改变,这里就是典型的观察者模式。原创 2022-02-07 23:27:24 · 1036 阅读 · 0 评论 -
【大话设计模式】模式十六:状态模式以及在JDK中的应用
【引入】每一天都是起床都是新的一天,上午状态好,中午想睡觉,下午渐恢复,加班是煎熬,这都是一种种状态的变化。由此,我们引出一种设计模式,状态模式。原创 2022-02-07 23:27:14 · 978 阅读 · 0 评论 -
【大话设计模式】模式十七:JDBC中的桥接模式
【引入】手机品牌与手机软件。两者间有一条聚合线,一个手机品牌可以有多个手机软件。不要一涉及继承就考虑该模式,尽可能把变化的因素封装到最细、最小的逻辑单元中,避免风险扩散。由此引出桥接模式。原创 2022-02-07 23:27:07 · 1404 阅读 · 0 评论 -
【大话设计模式】模式十八:命令模式
【引入】烤羊肉串的老板未必可以记住所有顾客交没交钱,或者是需要什么,因为老板与顾客紧耦合,所以容易出错,而且对于请求排队或者请求日志,以及可支持撤销的操作时,“行为请求者”与“行为实现者”紧耦合是不合适的。因此引出命令模式。原创 2022-02-07 23:28:19 · 864 阅读 · 1 评论 -
【大话设计模式】模式十九:责任链模式在JAVA异常处理机制中的体现
【引入】当一个问题发生的时候,当前对象看一下自己是否能够处理,不能的话将问题抛给自己的上级去处理,但是要注意这里的上级不一定指的是继承关系的父类,这点和异常的处理是不一样的。所以可以这样说,当问题不能解决的时候,将问题交给另一个对象去处理,就这样一直传递下去直至当前对象找不到下线了,处理结束。原创 2022-02-07 23:26:53 · 1680 阅读 · 0 评论 -
【大话设计模式】模式二十:享元模式在多种池子中的应用
【引入】我们每次创建字符串对象时,都需要创建一个新的字符串对象的话,内存开销会很大,所以如果第一次创建了字符串对象“Flyweight”,下次再创建相同的字符串“Flyweight”时,只要把它的引用指向“Flyweight”,这样就实现了“Flyweight”字符串在内存中的共享。下面给出享元模式的定义。原创 2022-02-07 23:26:43 · 1290 阅读 · 0 评论