2022年6月14日

摘要: 7.@Data注解及其hashCode设值的研究 今天写原型模式的示例时,涉及到Object的clone方法,发现了一个问题,加了@Data的实体在使用clone方法之后,二者比对的hash值相同,使用get、set方法的实体,在使用clone方法之后,二者比对的hash值不同,把示例贴出来,如下: 1.使用@Data: @Data public 阅读全文
posted @ 2022-06-14 16:45 技术猫猫 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 一、描述 定义一个用于创建产品的接口,由子类工厂决定生产什么产品。解决了简单工厂模式破坏开闭原则的弊端 工厂方法模式的角色包含: 1.抽象工厂:构造了一个生产产品的接口方法。 2.具体工厂:指定生产某种产品,实现了抽象工厂的接口方法。 3.抽象产品:定义了一系列产品的通用使用方法。 4.具体产品:某 阅读全文
posted @ 2022-06-14 09:51 技术猫猫 阅读(22) 评论(0) 推荐(0) 编辑

2022年6月13日

摘要: 在工厂模式的大类中,具体有三个小的子类模式,包含简单工厂模式、工厂方法模式、抽象工厂模式。其中简单工厂模式并没有放到23种设计模式中,但是对于理解另外两种设计模式有重要作用。这篇文章中,主要介绍一下简单工厂模式: 一、描述 简单工厂模式有一个具体的工厂类,可以生成多个不同的产品。 该模式的使用场景为 阅读全文
posted @ 2022-06-13 09:52 技术猫猫 阅读(21) 评论(0) 推荐(0) 编辑

2022年6月7日

摘要: 一、描述: 某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 二、特点: 1.单例类只有一个实例对象 2.该单例对象必须由单例类自行创建 3.单例类对外提供一个访问该单例的全局访问点。 三、优点: 1.单例模式可以保证内存里只有一个实例,减少了内存的开销。 2 阅读全文
posted @ 2022-06-07 10:22 技术猫猫 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 一、原则: 要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 二、和继承复用的区别 合成复用和继承复用在类的关系有差别,一个是继承,一个是组合关系。我认为在实际使用时,可以根据业务场景来区别使用,这样不会很乱。 继承复用的优缺点: 优点: 1.使用比较方便, 阅读全文
posted @ 2022-06-07 10:21 技术猫猫 阅读(61) 评论(0) 推荐(0) 编辑

2022年6月2日

摘要: 一、原则: 一个类对另一个类的依赖应该建立在最小的接口上。要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。 二、作用: 1.将臃肿庞大的接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。 2.接口隔离提高系统的内聚性,减少了对外 阅读全文
posted @ 2022-06-02 10:46 技术猫猫 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 一、原则: 如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 二、作用: 1.降低了类之间的耦合度,提高了模块的相对独立性 2.由于亲和度降低,从而提高了类的可复用性和系统的扩展性。 3.过渡使用迪米特法则会使 阅读全文
posted @ 2022-06-02 10:46 技术猫猫 阅读(29) 评论(0) 推荐(0) 编辑

2022年6月1日

摘要: 一、原则: 规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。 二、作用: 1.降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多想职责简单得多。 2.提高类的可读性。复杂性降低,自然其可读性会提高 3.提高系统的可维护。 4.变更引起的风险降低。变更是必然的,如果单一职责原则遵 阅读全文
posted @ 2022-06-01 11:28 技术猫猫 阅读(42) 评论(0) 推荐(0) 编辑

2022年5月30日

摘要: 一、原则: 高层模块不应该依赖低层模块,两者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。面向接口编程,不要面向实现编程。 二、作用: 1.可以降低类间的耦合性 2.可以提高系统的稳定性 3.减少并行并发引起的风险 4.提高代码的可读性和可维护性 三、实现: 1.通过面向接口的编程来降低类 阅读全文
posted @ 2022-05-30 15:28 技术猫猫 阅读(35) 评论(0) 推荐(0) 编辑

2022年5月24日

摘要: 一、描述: 将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 二、特点: 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。 三、优点: (1)Java自带 阅读全文
posted @ 2022-05-24 19:05 技术猫猫 阅读(29) 评论(0) 推荐(0) 编辑

导航