自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 问答 (1)
  • 收藏
  • 关注

原创 23种设计模式之-----原型模式

原型模式原型模式原型模式的应用场景原型模式的通用写法使用序列化实现深度克隆克隆破坏单例模式原型模式在源码中的应用原型模式的优缺点原型模式原型模式(Prototype Pattern)是指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新 的对象,属于创建型模式。官方原文:Specify the kinds of objects to create using a prototypica...

2020-03-21 11:51:54 220

原创 23中设计模式之-----策略模式

策略模式策略模式( Strategy Pattern )又叫也叫政策模式( Policy Pattern) ,它是将定义的算法家族、分别封装起来,让它们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户。属于行为型模式。原文: Define a family of algor ithms, encapsulate each one, and make them inter chang...

2020-03-15 16:33:00 171

原创 synchronized 原理

原理synchronized 的秘密其实都在同步对象上。这个对象就是一个看门人,每次只允许一个线程进来,进门后此线程可以做任何自己想做的事情,然后再出来。此时看门人会吼一嗓子:没人了,可以进来啦!其它线程听到吼声,马上都冲了过来。但总有个敏捷值最高的线程先冲入门内,那么其它线程只好继续等待。我们一直说的同步对象,其实就是任何一个普通的对象。那么一个普通的java对象是如何来做同步这件事的呢?这...

2020-03-12 00:45:45 176

原创 23种设计原则之-----适配器模式

适配器模式适配器模式的应用场景类适配器对象适配器接口适配器适配器模式在源码中的体现适配器模式和装饰器模式对比适配器模式的优缺点适配器模式 ( Adapter Pattern )又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,属于结构型设计模式。原文: Convert the interface of a ...

2020-03-10 01:30:55 733

转载 关于Spring的构造函数,init-method,和依赖注入的先后顺序

构造函数–>依赖注入–>init-method,注意的一点是只有一个类完整的实例被创建出来后,才能走初始化方法。

2020-03-09 12:02:00 2160

原创 23种设计模式之-----工厂模式

简单工厂模式简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类的实例, 但它不属于 GOF 23 种设计模式。简单工厂适用于工厂类负责创建的对象较少的场景,且客户端只需要 传入工厂类的参数,对于如何创建对象的逻辑不需要关心。接下来我们来看代码,还是以课程为例。学院目前开设有 Java 架构、大数据、人工智能等课程, 已经形成了一个生态。我们可以...

2020-03-08 23:35:20 235

原创 七大设计原则之-----合成复用原则

合成复用原则(Composite/Aggregate Reuse Principle,CARP)是指尽量使用对象组合(has-a)/ 聚合(contanis-a),而不是继承关系达到软件复用的目的。可以使系统更加灵活,降低类与类之间的耦 合度,一个类的变化对其他类造成的影响相对较少。继承我们叫做白箱复用,相当于把所有的实现细节暴露给子类。组合/聚合也称之为黑箱复用,对类 以外的对象是无法获取到实...

2020-03-08 14:12:09 163

原创 七大设计原则之-----里氏替换原则

里氏替换原则(Liskov Substitution Principle,LSP)是指如果对每一个类型为 T1 的对象 o1,都有 类型为 T2 的对象 o2,使得以 T1 定义的所有程序 P 在所有的对象 o1 都替换成 o2 时,程序 P 的行为没 有发生变化,那么类型 T2 是类型 T1 的子类型。定义看上去还是比较抽象,我们重新理解一下,可以理解为一个软件实体如果适用一个父类的话, 那一...

2020-03-08 13:25:54 162

原创 七大设计原则之-----迪米特法则

迪米特原则(Law of Demeter LoD)是指一个对象应该对其他对象保持最少的了解,又叫最少知 道原则(Least Knowledge Principle,LKP),尽量降低类与类之间的耦合。迪米特原则主要强调只和朋友交流,不和陌生人说话。出现在成员变量、方法的输入、输出参数中的类都可以称之为成员朋友类, 而出现在方法体内部的类不属于朋友类。现在来设计一个权限系统,TeamLeader需...

2020-03-08 01:05:01 285

原创 七大设计原则之-----接口隔离原则

接口隔离原则(Interface Segregation Principle, ISP)是指用多个专门的接口,而不使用单一的 总接口,客户端不应该依赖它不需要的接口。这个原则指导我们在设计接口时应当注意一下几点:1、一个类对一类的依赖应该建立在最小的接口之上。2、建立单一接口,不要建立庞大臃肿的接口。3、尽量细化接口,接口中的方法尽量少(不是越少越好,一定要适度)。接口隔离原则符合我们常说...

2020-03-08 00:57:32 160

原创 七大设计原则之-----单一职责原则

单一职责(Simple Responsibility Pinciple,SRP)是指不要存在多于一个导致类变更的原因。假 设我们有一个 Class 负责两个职责,一旦发生需求变更,修改其中一个职责的逻辑代码,有可能会导致 另一个职责的功能发生故障。这样一来,这个 Class 存在两个导致类变更的原因。如何解决这个问题呢? 我们就要给两个职责分别用两个 Class 来实现,进行解耦。后期需求变更维护...

2020-03-06 22:10:28 152

原创 七大设计原则之-----依赖倒置原则

依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依 赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。通过依赖倒置,可以 减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并能够降低修改程序所 造成的风险。接下来看一个案例,还是以课程为例,先来创建一个类 Tom:public clas...

2020-03-05 21:18:47 222 1

原创 23种设计模式之-----单例模式

单例模式单例模式的应用场景 单例模式(Singleton Pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全 局访问点。单例模式是创建型模式。单例模式在现实生活中应用也非常广泛,例如,公司 CEO、部门经 理 等 。 J2EE 标 准 中 的 ServletContext 、 ServletContextConfig 等 、 Spring 框 架 应 用 中 的 Appl...

2020-03-04 21:23:47 238

原创 七大软件设计原则之-----开闭原则

开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对扩展开放, 对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调的是用抽象构建框架,用实 现扩展细节。可以提高软件系统的可复用性及可维护性。开闭原则,是面向对象设计中最基础的设计原 则。它指导我们如何建立稳定灵活的系统,例如:我们版本更新,我尽可能不修改源代码,但是可以增 加新功...

2020-03-03 20:51:03 185

原创 Apache 的 StringUtils.isEmpty()与StringUtils.isBlank()的区别

Apache 的 StringUtils.isEmpty()与StringUtils.isBlank()的区别isEmpty()只能判断给定的字符串是不是为空或者长度为0,方法代码如下`public static boolean isEmpty(String str) {return str == null || str.length() == 0;}StringUtils.isEmp...

2019-10-17 21:51:22 292

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除