自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式-02抽象工厂设计模式

/** * 一个工厂模式的抽象层(接口) */public abstract class AbsFactory { @Nullable abstract Pizza createPizza(String orderType);}/** * 这是工厂子类 */public class BJFactory extends AbsFactory { @Override @Nullable Pizza createPizza(String orderType

2020-06-27 00:31:37 104

原创 设计模式-02工厂方法设计模式

场景: 用户需要下单美国披萨,中国披萨, 前一个简单工厂模式就不是能很好的满足现在的需求了。工厂方法模式: 定义一个创建对象的抽象方法,在子类决定需要实例化的类。工厂方法模式将对象的实例化推迟到子类中。Pizza顶级父类public abstract class Pizza { protected String name; /** * 准备原材料,不同的Pizza原材料不一样,设置成抽象方法,留给子类重写 */ public abstract void

2020-06-17 00:52:53 113

原创 设计模式-02简单工厂设计模式

先由简单工厂,引出一系列问题,从而优化。简单工厂模式属于创建型模式,是工厂模式的一种,简单工厂模式是由一个工厂对象决定创造出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式简单工厂模式: 定义了一个创建对象的类,由这个类来封装实例化对象的过程。/** * 所有披萨的顶级父类 */abstract class Pizza { protected String name; /** * 准备原材料,不同的Pizza原材料不一样,设置成抽象方法,留给子类重.

2020-06-17 00:14:53 112

原创 设计模式-01单例设计模式

01单例设计模式基本介绍所谓类的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate中的SessionFactory,它充当的就是数据存储源的代理,并负责创建Session对象。SessionFactory并不是轻量级的,一般情况下,一个项目只需要一个SessionFactory就够,这时就需要单例设计模式。单例设计模式有8种写法饿汉式(静态常量)优点: 这种写法比较简单,就是

2020-06-11 00:36:40 112

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

合成复用原则基本介绍原则尽量使用合成/聚合的方式,而不是使用继承。问题举例public class Composite {}class A{ public void operation1(){ } public void operation2(){ }}/** * B 类想使用A类的方法, 最好不要用B类去继承A类,如果继承了会提高AB两个类的耦合性 */class B{ /** * 使用Set方法或者构造方法给B类的私有

2020-06-07 22:21:10 149

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

迪米特法则基本介绍一个对象应对其他对象保持最少的了解。类与类关系越密切,耦合度越大。迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供public方法,不对外泄露任何信息。迪米特法则还有个简单的定义: 只与直接的朋友通信。直接的朋友: 每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间事是朋友关系。耦合的方式很多,依赖,关联,组合,聚合等。其中,我们称出现成员变量,方法参

2020-06-07 21:49:25 233

原创 设计模式-七大原则-开闭原则

开闭原则基本介绍开闭原则,是编程中最基础、最重要的设计原则。一个软件实体如类,模块和函数应对外扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。说白了就是增加了新功能,尽量保证以前的使用方代码不做更改问题代码示例public class Ocp { public static void main(String[] args) { GraphicEd

2020-06-03 00:32:33 164

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

里氏替换原则基本介绍继承包含这样一层含义: 父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则但这个类需要修改的时候,必须考虑到所有子类,并且父类修改后,所有涉及到子类的功能都有可能出现故障。这个时候就需要引入里氏替换原则

2020-06-02 23:39:06 135

原创 设计模式-七大原则-依赖倒转原则

依赖倒转原则基本介绍高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。依赖倒转(倒置)的中心思想是面向接口编程。依赖倒转原则是基于这样的的设计理念: 相对于细节的多变性,抽像的东西要稳定得多。以抽象为基础搭建的架构比以细节为基础的架构要稳定得多。在java中,抽象指的是接口或者抽象类,细节就是具体的实现类使用接口或者抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成问题代码示例public class De

2020-05-25 00:14:36 181

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

接口隔离原则基本介绍客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。接口Interface1中有5个方法,类A需要通过接口Interface1去掉用B类的第1,2,3个方法,类C需要通过接口Interface1去调用D类的第1,4,5个方法,这个时候B,D两个类必须重写完Interface1中的所有方法,这样会重写一些并没有使用的方法。按照隔离原则,Interface1应该拆分成几个更小的独立的接口,供A类和C类使用。错误的示范...

2020-05-24 02:46:12 150

原创 设计模式

设计模式使用设计模式可以提高程序的: 代码重用性,可读性,可扩展性,可靠性,使程序呈现高内聚,低耦合的特性设计模式常用的七大原则1. 单一职责原则2. 接口隔离原则3. 依赖倒转原则4. 里氏替换原则5. 开闭原则ocp6. 迪米特法则7. 合成复用法则...

2020-05-24 00:06:41 198

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

单一职责原则基本介绍对类来说,即一个类应该只负责一项职责。如A类负责两个不同的职责: 职务1,职务2。当职责1需求变更而改变A的代码时,可能造成职责2执行错误,所以需要将A的粒度分解为A1,A2。例如UserDao只负责对User的增删查改例如一个Dao又对User进行增删改查又对Order进行增删查改,这就违背了单一职责,此时可以拆分成UserDao和OrderDao违背单一职责的代码/** * 非单一职责 */public class SingleResponsibility1

2020-05-23 23:59:08 175

原创 MySQL8.0使用performance_schema分析一条SQL的具体执行时间

MySQL8.0使用performance_schema分析一条SQL的具体执行时间新版的MySQL已经彻底移除了以前ProFile的大多数功能第一步SELECT * FROM performance_schema.setup_actors;这是用于配置是否为新的前台server线程(与客户端连接相关联的线程)启用监视和历史事件日志记录的表第二步UPDATE performance...

2019-11-13 11:20:52 2612 1

空空如也

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

TA关注的人

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