阿里微服务注册中心 Nacos 启动报错 Unable to start embedded Tomcat
报错内容如下 org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.We ...阅读全文
报错内容如下 org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.We ...阅读全文
解释器模式是什么 解释器是一种行为型设计模式,指给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。 为什么用解释器模式 在软件开发中,会遇到有些问题多次重复 ...阅读全文
访问者模式是什么 访问者是一种行为型设计模式, 允许你在不修改已有代码的情况下向已有类层次结构中增加新的行为。 为什么用访问者模式 访问者模式建议将新行为放入一个名为访问者的独立类中,而不是试图将其整合到已有类中。现在需要执行操作的原始对象将作为参数被传递给访问者中的方法, 让方法能访问对象所包含的 ...阅读全文
状态模式是什么 状态模式是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。 为什么要用状态模式 如果对象需要根据自身当前状态进行不同行为,同时状态的数量非常多且与状态相关的代码会频繁变更的话,可使用状态模式。相似状态和基于条件的状态机转换中存在许多 ...阅读全文
中介模式是什么 中介者模式是一种行为设计模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以相互独立地改变它们之间地交互。 为什么用中介模式 中介者模式建议你停止组件之间的直接交流并使其相互独立。这些组件必须调用特殊的中介者对象,通过中介者对象重 ...阅读全文
定义: 享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。 结构: Flyweight:享元抽象类,所有具体享元类的接口,通过这个接口,Flyweight 可以接受并作用于外部状态。 ConcreteFlyweight:实现 Flyweight 接口的可以共享的具体享元类。 U ...阅读全文
备忘录模式是什么 备忘录模式是一种行为设计模式, 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 为什么要用备忘录模式 当你需要创建对象状态快照来恢复其之前的状态时,可以使用备忘录模式。或者当直接访问对象的成员变量、获取器或设置器将导致封装被突破时, 可以使用该模式。 备忘录模式怎么实现 ...阅读全文
###装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例 ...阅读全文
外观(门面)模式 化零为整,把零碎的功能拼成一个整体,对外提供一个统一接口,用来访问子系统中的多个接口。 总结 解耦,不需要一个个对接,使用简单。 单例模式 负责创建对象,同时确保只有单个对象被创建。 饿汉式 线程安全,在类加载时就会进行初始化,访问时直接使用。 public class Stude ...阅读全文
介绍 SOLID 原则是由 5 个设计原则组成的,分别为:(S)单一职责原则、(O)开闭原则、(L)里式替换原则、(I)接口隔离原则和(D)依赖反转原则; 单一职责原则 SRP 单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP; 它的意思是一个类或 ...阅读全文
迭代器模式是什么 迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。 为什么用迭代器模式 当集合背后为复杂的数据结构, 且你希望对客户端隐藏其复杂性时(出于使用便利性或安全性的考虑),可以使用迭代器模式。迭代器封装了与复杂数据结构进行 ...阅读全文
在讲解实体的章节中我们曾经介绍说过如何有效的创建实体,主要包括两种方式:工厂和构造函数。本章我们工厂进行一下详解,这种东西能有效的简化实体使用的难度,毕竟你无法通过Spring这种容器来管理领域对象。实际的开发过程中,工厂的使用要比书中的讲解会复杂一点,所以在本章我会对实践中遇到的一些问题以及使用什 ...阅读全文
策略模式是什么 策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。 为什么用策略模式 当你想使用对象中各种不同的算法变体,并希望能在运行时切换算法时,可使用策略模式。策略模式让你能将不同行为抽取到一个独立类层次结构中, 并将原始类组 ...阅读全文
微服务从几年突然火了起来,经常在各种地方见到,刚好有空,整理了一下我的看法。我在18年开始参加工作,刚出来工作时认为微服务是一种“先进”的设计风格用上了就是好的,然而最近回头看,微服务只是为了解决某一些问题的方案,并不适用于所有系统。选择架构,在我看来更像是买东西:找到需要的东西,并且挑出代价最小的 ...阅读全文
责任链模式是什么 责任链模式是一种行为设计模式, 允许你将请求沿着处理者链进行发送。 收到请求后, 每个处理者均可对请求进行处理, 或将其传递给链上的下个处理者。 为什么要用责任链模式 如果有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时刻自动确定。或者所需处理者及其顺序必须在运行时进行 ...阅读全文
老旧项目二次开发指南 背景: 最近新入职公司,负责技术。由于各种原因现在项目全权交由我们团队负责,之前的研发团队不再参与(及以后可能完全联系不上)。作为技术负责人,又刚入职公司压力巨大。经过两个多月的改造,算是接手得还算行。该项目存在的问题比较典型,特此记录。欢迎各位大佬批评指教。技术能力有限,文中 ...阅读全文
命令模式是什么 命令模式是一种行为型设计模式,它可以将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 为什么用命令模式 在软件开发系统中,“方法的请求者”与“方法的实现者”之间经常存在紧密的耦合关 ...阅读全文
1. pom <!-- 达梦数据库驱动 --> <dependency> <groupId>com.dm</groupId> <artifactId>DmJdbcDriver18</artifactId> <version>1.8</version> </dependency> maven中央仓库里 ...阅读全文
模板方法模式是什么 模版方法模式是设计模式中的行为型的一种模式,它在基类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。 为什么要用模板方法模式 模板方法将整个算法转换为一系列独立的步骤,以便子类能对其进行扩展,同时还可让超类中所定义的结构保持完整。或者当多个类的算法步骤一致 ...阅读全文
观察者模式是什么 观察者模式是一种行为设计模式, 允许一个对象将其状态的改变通知其他对象。观察者模式允许你定义一种订阅机制, 可在对象事件发生时通知多个观察者。 为什么用观察者模式 当一个对象状态改变时需要改变其他对象,可使用观察者模式。它定义对象间的一对多的依赖关系,当一个对象的状态发生改变时,所 ...阅读全文