java设计模式
文章平均质量分 56
杨·戬
孤舟蓑笠翁 独钓寒江雪
展开
-
java设计模式之委派模式(delegate pattern)
这个类去调用Leader,并且发出具体的任务安排。下面Leader这个类就是具体的委派者。原创 2023-02-10 21:40:27 · 214 阅读 · 0 评论 -
java设计模式之享元模式(Flyweight Pattern)
如果一个系统中,对象的数量太多,就会导致运行代价过高,服务器的开销太大。什么是享元与需要解决的问题。原创 2023-02-10 19:54:33 · 101 阅读 · 0 评论 -
java设计模式之建造者模式(Builder Pattern)
我们可以看到StringBuilder继承了一个AbstractStringBuilder类,这个就像是具体的建造者对象去实现了建造者抽象。其实,说一下,有时候这个建造者模式组件表现的不会那么齐全,比如我们稍微去看一下StringBuilder的源码。看到这个StringBuilder后面有个Builder就应该猜出来,它是一个建造者或者建造者的抽象层。那么一看这个类就是一个抽象类,这是不是就让我们想起建造者抽象,但是它还不是,我们继续往下追。这个就可以理解为建造者抽象,产品的话可以考虑为没有。原创 2022-12-17 12:57:32 · 562 阅读 · 0 评论 -
java设计模式之原型模式(prototype Pattern)
下面我们可以采用序列化方法来实现深度克隆,也就是我们直接把这个对象给序列化到内存里面,然后在解析出来,这样就会整体在内存里面开一个新对象与原对象无任何关系。此方法需要注意的是,一个对象想要实现克隆,就必须实现一个标志性接口Cloneable。上面就很明显看到复制过去一个对象之后,就相当于在堆上面开了一个新空间,你做出相应的改值之后,这个只是对于普通类型来说,是对原对象互不影响的。但是你想想,现在也会存在这样一个问题,就是如果一个类里面有很多引用对象,如果要进行深拷贝,我们就要不断的去进行克隆,比如如下。原创 2022-12-15 15:39:24 · 292 阅读 · 0 评论 -
java设计模式之代理模式
下面先来说静态代理:先来看一下UML关系图:原创 2022-04-25 17:07:37 · 496 阅读 · 0 评论 -
java设计模式之外观模式
外观模式也是门面模式。Facade Pattern为系统中的一组接口提供一个一致的界面。这个界面并不是传统意义上的前端界面。而是一个类,一个内部安排了很多其他类的类。通过它我们可以去调用这些类里面对外的接口,这些子系统可能都不知道有Facade这个门面类。下面用一个小实例说明一下:比如说,我们要点外卖,那么点外卖就有几个流程,比如:‘那么我们还需要一个商品类,这个类给我们提供商品信息,然后传递给需要商品属性的类。话不多说,直接上代码:Goodspackage p原创 2022-04-06 15:10:32 · 644 阅读 · 0 评论 -
单例设计模式
解决问题:保证一个类在内存中只有一个对象比如用户向服务器发送请求,如果每一个用户过来,都实例化一个对象,那么当人很多的情况下,服务器就爆了。cpu在一个时间段只能有一个线程执行。比如两个线程同时执行,或者多个线程,那么当一个程序执行到某一个位置,突然,想往下一个程序执行的时候,但是下一个程序段有被占用,这个时候它就不能动了。然后只等这个程序执行才能动。这个后面会涉及到线程安全的问题...原创 2019-07-08 09:33:05 · 112 阅读 · 0 评论 -
模板模式
模板模式 :解决某类事情的步骤有些是固定的,有些是会发生变化的,那么这时候我们可以为这类事情提供一个模板代码,从而提高效率 。例如:简历模板性别 姓名 工作经验......某一部分都是固定的。把固定的封装好需求;编写一个计算程序运行时间 的模板。自己去解决在跑之前记录一个时间,炮之后记录一个时间,完了相减模板模式的步骤:先写出解决该类事情其中 的一件的解决方案。比...原创 2019-07-08 12:36:22 · 120 阅读 · 0 评论 -
装饰者设计模式
给一个对象动态的添加一些功能。一般两种思路来做:第一种:做一个接口组件,完了定义的一个具体实现类去实现这个组件,后面我们也就是要修改这个组件具体实现类中的功能,我们对功能进行动态添加,用一个装饰类去实现这个接口,完了把被装饰类的对象给传进来,然后在装饰类中进行功能的拓展。下面我们就用装饰类来拓展被装饰类功能,可以改变其功能也可以添加其功能,还可以添加新的功能。...原创 2019-07-08 23:47:51 · 112 阅读 · 0 评论