发布于2022/03/20 19:21
Java设计模式-创建者模式-建造者模式(Builder模式)
建造者模式(Builder模式)
在软件开发过程中,有时需要创建一个复杂的对象,这个复杂对象通常由多个子部件按一定的步骤组合而成,各个部件可以灵活选择,但其创建步骤都大同小异。这类产品的创建无法用前面介绍的工厂模式实现,只有用建造者模式可以很好地描述该类产品的创建。
定义: 指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示 。
它是...
- 1576
发布于2022/03/19 20:39
Java设计模式-创建者模式-原型模式
原型模式
在有些系统中,存在大量相同或者类似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂而且耗时耗资源,用原型模式生成对象就很高效。
定义:用一个已经创建的实例(对象)作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象(除了内存地址和原型不一样,其余都一样)。
结构: 由于Java提供了对象的clone()方法,所以用Java实现原...
- 1871
发布于2022/03/18 00:20
Java设计模式-创建者模式-抽象工厂模式
抽象工厂模式
在介绍抽象工厂模式之前,我们先解释即将涉及到的两个名词:“同等级产品”和“产品族”。
同等级产品:同种类的产品。
例如,运动鞋、皮鞋、高跟鞋就是同种类的产品,它们都属于鞋子这一类。
产品族:位于不同等级的一组产品称为一个产品族。
可以理解为同一品牌或同一风格的产品,例如,运动风的上衣、裤子和...
- 1700
发布于2022/03/16 23:34
Java设计模式-创建者模式-工厂方法模式
工厂方法模式
“工厂方法模式”是对“简单工厂模式”的进一步抽象化。
好处:使系统在不修改原来代码情况下引进新产品,满足开闭原则。(在改进的案例中会体现)
结构:
抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法(创建产品的方法)来创建产品。
 ...
- 1644
发布于2022/03/14 20:56
Java设计模式-创建者模式-工厂模式-简单工厂模式(不属于23种设计模式之一)
工厂模式
定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子类工厂类中实现。(这也满足创建型模式的特点“创建与使用分离”)
分类:按实际业务场景划分,工厂模式可分为3类:
①简单工厂模式(不属于GOF 23种设计模式之一)
②工厂方法模式
③抽象工厂模式
应用场景:在...
- 1701
发布于2022/03/13 19:56
Java设计模式-创建者模式-单例模式-懒汉式
单例模式(Singleton Pattern)-懒汉式
懒汉式:类加载的时候该类的对象并不会被创建,而是在首次使用该对象的时候(外界调用获取该单实例对象的getInstance()方法时)被创建。
下面来介绍懒汉式的四种实现方式(线程不安全、线程安全、双重检查锁方式、静态内部类方式)
1.懒汉式-方式1(线程不安全)
&...
- 1506
发布于2022/03/12 20:29
Java设计模式-创建者模式-单例模式-饿汉式
创建者模式
主要关注点:怎样创建对象?
主要特点:将对象的创建与使用分离。
好处:降低系统的耦合度,使用者不需关注对象的创建细节,对象的创建由相关的工厂来完成。
就像我们买东西,不需要知道商品是怎么生产的,因为它们有专门的厂商生产。
分类:1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.原型模式 5.建造者模式
单例模式...
- 1496
发布于2022/03/11 00:07
Java设计模式-软件设计原则-合成复用原则
合成复用原则(组合/聚合复用原则)
定义:要求在软件复用时,尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。
虽然继承也能提高代码的复用性,但存在很多问题,下面会说到。
如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成,两者都是开闭原则的具体实现规范。
“里氏替换原则&rdq...
- 1713
发布于2022/03/09 23:24
Java设计模式-软件设计原则-迪米特法则
迪米特法则(最少知识原则)
定义:只和你的直接朋友交谈,不跟“陌生人”说话。
其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。
软件实体包括以下几个部分:①项目中划分出的模块②类与接口③方法
举个栗子,我们租房子要找房屋中介,而不是直接找房主。租房者只需把购房需求告诉房...
- 3216
发布于2022/03/08 21:00
Java设计模式-软件设计原则-接口隔离原则
接口隔离原则
定义:客户端不应该被迫依赖于它不使用的方法;一个类对另一个类的依赖应该建立在最小的接口上。
应用:下面通过“安全门”案例来理解接口隔离原则。
需求:我们需要创建一个黑马品牌的安全门,该安全门具有防火、防水、防盗的功能。
分析:在学习接口隔离原则之前,我们可能会想到将防火、防水和防盗功能提取成一个接口(Sa...
- 5432
发布于2022/03/07 21:47
Java设计模式-软件设计原则-单一职责原则
单一职责原则(单一功能原则)
定义:一个类应该有且仅有一个引起它变化的原因,否则该类应该被拆分。
职责:类变化的原因。(一个类中的功能发生改变时,就需要修改这个类内部的业务逻辑,从而使类发生了变化)
核心思想:控制类的颗粒度大小、将对象解耦、提高其内聚性。
颗粒度 = 颗粒 + 清晰度
颗粒度小表示更微观,注重细节;颗粒度大表示...
- 1343
发布于2022/03/06 21:05
Java设计模式-软件设计模式-依赖倒置原则
依赖倒置原则
定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象(接口或抽象类);抽象不应该依赖细节(具体的实现类),细节应该依赖抽象。
核心思想:要面向接口编程,不要面向实现编程。
依赖倒置原则是实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合。
由于在软件设计中,细节具有多变性,而抽象层则相对稳定。因此,以抽象为基础搭建起...
- 1530
发布于2022/03/05 19:20
Java设计模式-软件设计原则-里氏替换原则
里氏替换原则
定义:继承必须确保超类所拥有的性质在子类中仍然成立。(任何基类可以出现的地方,子类一定可以出现)
超类:已经存在的,被继承的类称为超类,基类或父类。
子类:新创建的,继承的类称为子类,派生类或孩子类。
里氏替换原则主要阐述了有关继承的一些原则。也就是什么时候应该使用继承,什么时候不应该使用继承,以及其中蕴含的原理。
 ...
- 1529