![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23种设计模式
文章平均质量分 63
暴躁的程序猿啊
不是大佬,只是在分享学习的过程
展开
-
23种设计模式之备忘录模式
备忘录模式游戏角色状态恢复问题游戏角色有攻击力和防御力,在大战boss之前保存自身的状态(攻击力血量等等),当大战boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态传统的方式问题分析1.一个对象,就对应一个保存对象状态的对象,这样当我们游戏的对象很多时,不利于管理,开销也很大2.传统的方式是简单的备份,new出另外一个对象出来,再把需要备份的数据放到这个新对象,但这样就暴露了对象的内部细节解决方案 : 备忘录模式模式基本介绍:1.备忘录模式(Memento Pattern)在不原创 2021-10-16 09:57:11 · 1055 阅读 · 0 评论 -
23种设计模式之观察者模式
观察者模式我们这里有一个天气预报的需求1.气象站可以将每天测量到的温度,湿度,气压等以公告的形式发布出去(比如发布到自己的网站或第三方)2.需要设计开放型API,便于其他第三方也能接入气象站获取数据3.提供温度、气压和湿度的接口4.测量数据更新时,要能实时的通知给第三方观察者模式原理:1.气象局:Subject2.用户/第三方网站:ObserverSubject:登记注册、移除、通知1.registerObserver注册2.removeObserver移除3.notifyObser原创 2021-10-12 10:04:35 · 123 阅读 · 0 评论 -
23种设计模式之代理模式
代理模式(Proxy)代理模式的基本介绍1.代理模式:为一个对象提供一个替身,以控制对这个对象的访问,即通过代理对象访问目标对象…这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能2.被代理对象可以使远程对象、创建开销大的对象或需要安全控制的对象3.代理模式有不同的形式,主要有三种静态代理、动态代理(JDK代理、接口代理)、和cglib代理(可以在内存中动态的创建对象,而不需要实现接口,它是属于动态代理的范畴)静态代理静态代理在使用时,需要定义接口或者父类,被代原创 2021-10-07 09:28:40 · 160 阅读 · 0 评论 -
23种设计模式之开闭原则
开闭原则(Open Closed Principle)基本介绍:开闭原则是编程中最基础、最重要的设计原则一个软件实体 如类,模块和函数应该对扩展开放(对提供方来说)、对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。当软件的需求变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则代码示例有这样一个绘图的类/** * @create: 2021/9/26 * @author: Tony Stark原创 2021-10-01 09:53:24 · 485 阅读 · 0 评论 -
23种设计模式之里氏替换原则
里氏替换原则OO中的继承性的思考和说明1.继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。2.继承再给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障。3.问题提出:在编程中,原创 2021-09-27 20:02:45 · 121 阅读 · 0 评论 -
23种设计模式之接口隔离原则
接口隔离原则(Interface Segregation Principle)基本介绍:1.客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。虚线空心三角号 实现虚线箭头 依赖我们可以这里 类B实现了接口的全部方法 类D实现了接口的全部方法但是类A只使用类B的一二三方法类B只使用类D的一四五方法我们按照当前类图情况编写出来代码/** * 定义一个接口 有五个方法 */interface Interface1 { void opera原创 2021-09-26 09:44:38 · 101 阅读 · 0 评论 -
23种设计模式之单一职责原则
单一职责原则基本介绍对类来说,即一个类应该只负责一项职责 ,如类A负责两个不同的职责:职责1,职责2。当职责1的需求变更而更改A时,可能造成职责2执行错误,所以要将类A的粒度分解为A1,A2 两个类我们用一个案例来简单演示单一职责原则我们有一个交通工具的类 有一个run运行的方法/** * 单一职责原则 * @create: 2021/9/25 * @author: Tony Stark */public class SingleResponsibility1 { publi原创 2021-09-25 11:11:29 · 186 阅读 · 0 评论 -
23种设计模式之原型模式
原型模式定义: 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。主要用于创建对象原型模式实现只需要实现一个接口 重写clone()方法 。我们实现中 会有深拷贝和浅拷贝两种情况。浅克隆创建一个羊类 作为prototypepublic class Sheep{ /** * name名字 * creatTime 创建时间 */ private String name; private Date creatTime;原创 2021-06-28 11:52:14 · 83 阅读 · 1 评论 -
23种设计模式之工厂模式
工厂模式分为三类 简单工厂、工厂方法和抽象工厂核心理念:实例化对象不使用new 用工厂方法代替 将调用者和实现者分离提高内聚降低耦合。一、简单工厂模式(常用)用来生产同一等级结构中的任意产品(对于增加新的产品需要扩展已有代码)例如: 我们创建一个公共的接口 创建两个具体的类实现该接口 然后创建一个消费者来调用猫的接口/** * 猫接口 * @create: 2021/6/19 * @author: Tony Stark */public interface Cat{原创 2021-06-23 11:04:53 · 116 阅读 · 2 评论 -
23种设计模式之单例模式
单例模式这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式实现之一 饿汉模式/** * 饿汉式单例 * @create: 2021/6/18 * @author: Tony Stark */public class Hungry { /** * 私有构造器可以保证只有一个对象 */原创 2021-06-19 10:03:38 · 155 阅读 · 0 评论