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