![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23设计模式
程序老六
小白
展开
-
设计模式之观察者模式
观察者模式 观察者模式也叫发布定义模式。 当一个类想要知道另一个类的信息在某个条件下才出现的信息时; 如果不用观察者模式只能让这个类引用另一个类,并且不断地去判断这个类信息; 就比如你不知道一家店什么时候才会开门,你只能在门口等待; 而观察者模式,是将你等待店开门,转变店通知你。 也就是你不需要一直获取另一个类的信息,你只需要让另一个类通知这个类即可; public class Test { public static void main(String[] args) { Target tar原创 2022-01-05 18:14:40 · 186 阅读 · 0 评论 -
设计模式之享元模式
享元模式 享元模式就像共享单车。 众所周知共享单车存在外部资源和内部资源, 外部你使用可以调整座位高矮。内部信息是该共享单车存在一个特有的id或其他信息,这些信息外部无法改变和直接使用。 例如数据库连接池,我们的connection实例一开始就创建。当你使用就拿来使用,使用完继续放回数据库连接池, 其中你可以使用不同的sql语句就是外部资源信息、内部资源就是其中连接实例的账号、密码、url. package com.wei.model8; import java.text.SimpleDateFormat原创 2022-01-03 20:04:41 · 521 阅读 · 0 评论 -
设计模式之外观模式
外观模式 当人们在打开电脑的时候,只需要按一下按钮,但是计算机帮我们启动了很多的东西,大量的节约了我们的操作; 在做一个游戏时,有资源系统、属性系统、战斗系统、显示ui等等有时候我们不想逐个开启; 我们可以定义一个主要的类,然后将,然后封装一个一键开启所有功能的方法; package com.wei.model3; import java.lang.reflect.Method; public class Facade { private Class1 class1=new Class1(); p原创 2022-01-03 16:39:57 · 1774 阅读 · 0 评论 -
设计模式之中介者模式
中介者模式 在存在多個系統需要互相調用時 可以使用中介模式 這樣会使得类引用的对象过多,耦合性过高; 我们可以使用中介者模式,所有业务交给中介来完成 这样类引用的只有中介一个; 外观模式跟中介模式十分相似,都是在多个系统统一引用一个类对象。 区别在于外观模式是为了给外部的类引用系统的松耦合。 在java中如果要引用一些功能,可以在maven下载一些jar包,然后引用一两个类就可以实现,这种情况下,对于我们就是外部,我们所引用的是多个系统的外观类,这样会让我们更方便 而中介模式是为了给系统自身引用其他体系原创 2022-01-03 16:35:59 · 1953 阅读 · 0 评论 -
设计模式之策略模式
策略模式 策略模式跟状态模式是否相似,唯一的区别是策略模式无法在一个状态切换到另一个状态,所以叫做策略 可以看出策略模式一旦使用就注定,例如排序,我们使用了冒泡排序就无法使用选择排序; 但是状态模式不一样,状态模式是可以从一个状态切换到另一个状态; public class Test { public static void main(String[] args) { int[] arr = {2, 4, 6, 12, 432, 43, 23, 65, 24, 34}; SortingS原创 2022-01-03 16:32:05 · 153 阅读 · 0 评论 -
设计模式之状态模式
状态模式 如果一个类有多个状态,每个状态互相不共存,而且可以互相切换。 举个例子就是一个人有走、坐、站、跑、跳形态。但是不能同时同时进行。 这时候我们可以定义一个接口或抽象类,来表示行为状态。 使用其他类继承接口或抽象类,这些类就可以类表达具体的状态。 一个状态一般都存在 开始时 、进行时、结束时的方法,所以接口可以这样定义 package com.wei.model2; public interface Istate { //进入状态执行的方法 void onUpdata(); //状态中执行的原创 2022-01-03 16:29:57 · 213 阅读 · 0 评论 -
设计模式之单例模式
单例 一个类只有一个实例对象,为了方便获取这个对象,可以直接设置成类的静态属性 package com.wei; public class Model_1 { private static Model_1 instance; public static Model_1 Instance(){ if(instance==null){ instance = new Model_1(); } return instance; } //堵死无参构造,防止外部进行原创 2022-01-03 16:19:18 · 2597 阅读 · 0 评论