摘要: 命令模式基本介绍 命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但并不知道请求的接受者是谁,也不知道被请求的操作是具体如何执行 命令模式使得请求发送者和请求接受者之间松耦合。 命令模式支持撤销功能 如何解决 通过调用者发送指令,接受者接受指令并执行指令; 阅读全文
posted @ 2021-09-30 22:48 明月照江江 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 基本介绍 桥接模式(Bridge模式):将实现与抽象放在两个不同的类层次中,使两层次可以独立改变 是一种结构型设计模式 说白了就是有多个维度的变化,这样的组合关系如果按照传统的方式会导致类爆炸,所以需要将两个维度抽象出来,然后让其通过对象进行组合,来减少类的创建 用手机来举例 当前有两个维度:1. 阅读全文
posted @ 2021-09-30 22:48 明月照江江 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 建造者模式主要是为了解决创建对象时的一些问题 比如: 一个类有多个成员,可是初始化它时,有些成员必须传入,有些成员可以不传,这导致我们需要重载很多构造函数,着实蛋疼;或者成员过多,导致构造函数入参过多,构造函数很长的痛点 构造函数用法: public class Person { private S 阅读全文
posted @ 2021-09-30 19:18 明月照江江 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 最复杂的设计模式,并且使用频率不高,《设计模式》的作者评价为:大多情况下,你不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了。 访问者模式是一种将数据操作和数据结构分离的设计模式。 例子: 年底,CEO和CTO开始评定员工一年的工作绩效,员工分为工程师和经理,CTO关注工程师的代码量、 阅读全文
posted @ 2021-09-30 19:17 明月照江江 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式看似不常见,其实挺常见的;比如著名的React 的时间旅行功能,就是备忘录模式的体现;还有一些游戏的存档、读档功能也是备忘录模式 例子: 先创建一个用于存档英雄血量的类: 时刻档类 public class Memento { // 英雄血量 private int bloodState; 阅读全文
posted @ 2021-09-30 19:16 明月照江江 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式 是在工厂方法模式上的再一次抽取 1. 将工厂方法模式中的公共方法提出,放入一个单独的类中 2. 将抽象工厂父类 改为 接口,==进一步的抽象== 3. 由各个子类去实现该接口中的抽象方法 ##### 这样工厂为一个对象簇,披萨为一个对象簇,工厂代码更容易维护。 ### ==在工厂方法模 阅读全文
posted @ 2021-09-30 19:13 明月照江江 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 应用案例:客户点披萨时,可以点不同地点、不同口味的披萨,比如北京的奶酪披萨、北京的胡椒披萨 或者伦敦的奶酪披萨、伦敦的胡椒披萨 相比于简单工厂模式的案例,多了一个维度条件,直接使用简单工厂模式的话,会导致多个简单工厂类中有大量重复的代码,这里相当于使用了一个模版方法模式,抽取重复的部分到父类,而抽象 阅读全文
posted @ 2021-09-30 19:05 明月照江江 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 简单工厂模式 属于创建性模式,功能:又一个工厂对象决定创建出哪一种产品类的实例 是最简单最实用的模式 下面用披萨工厂举例: // pizza 父类 public class Pizza { private String name = ""; public void setName(String na 阅读全文
posted @ 2021-09-30 19:01 明月照江江 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 所谓单例模式,就是采取一定的方法保证整个软件系统,对某个类只存在一个对象实例,且该类只提供一个取得其对象实例的方法。 饿汉式单例模式(静态变量) /** * 饿汉式 * 线程安全 */ public class Singleton { private static Singleton instanc 阅读全文
posted @ 2021-09-30 18:56 明月照江江 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 当由于修改了Git 的密码导致 pull 等操作报错时,比如报以下错误: fatal: Authentication failed for 'http://xxxxxxxxxxxxxxxxxx.git/' 可以使用以下命令重置密码 git config --system --unset creden 阅读全文
posted @ 2021-09-28 07:45 明月照江江 阅读(135) 评论(0) 推荐(0) 编辑