当前位置: 萬仟网 > IT编程>软件设计>设计模式 > 常用设计模式思想和设计原则

常用设计模式思想和设计原则

2021年02月24日  | 萬仟网IT编程  | 我要评论
设计模式思想和设计原则1、常用设计原则(记住)2、设计模式模式(重点)2.1、单例模式2.2、普通工厂模式2.3、多个工厂方法模式2.4、静态工厂方法模式2.5、抽象工厂模式2.6、装饰器模式2.7、代理模式2.8、模板方法模式1、常用设计原则(记住)开闭原则对扩展开放修改关闭,为了使程序的扩展性好,易于维护和升级。里氏代换原则任何基类可以出现的地方,子类一定可以出现,多使用多态的方式。依赖倒装原则尽量使用多依赖抽象类或接口,而不是具体的实现类,对子类具有强制性和规范性。接口隔离原则尽量
@[TOC](设计模式思想和设计原则)

1、常用设计原则(记住)

  • 开闭原则
    对扩展开放修改关闭,为了使程序的扩展性好,易于维护和升级。
  • 里氏代换原则
    任何基类可以出现的地方,子类一定可以出现,多使用多态的方式。
  • 依赖倒装原则
    尽量使用多依赖抽象类或接口,而不是具体的实现类,对子类具有强制性和规范性。
  • 接口隔离原则
    尽量多使用小接口而不是大接口,避免接口的污染,降低类之间的耦合度。
  • 迪米特法则
    一个实体类应当尽量少于其他实体类之间发生相互作用,使系统功能模块相对独立。高内聚,低耦合。
  • 合成复用原则
    尽量多使用合成/聚合的方式,而不是继承的方式。

2、设计模式模式(重点)

2.1、单例模式

  • 单例模式主要分为懒汉式和饿汉式,懒汉式涉及到空间浪费的问题,饿汉式涉及到多个线程同时访问的问题。

2.2、普通工厂模式

(1)基本概念

  • 普通工厂方法模式就是建立一个工厂类,对实现了同一个接口的不同实现类进行实例的创建。

(2)类图结构
在这里插入图片描述
(3)主要缺点

  • 在普通工厂的方法模式中,如果传递的字符串错误,则不能正确的创建对象,并且可能出现空指针的异常。

2.3、多个工厂方法模式

(1)类图结构
在这里插入图片描述
(2)主要缺点

  • 在多个工厂方法模式中,为了能够正常的创建对象,先需要创建工厂类才能够调用工厂类里边的方法。

2.4、静态工厂方法模式

(1)类图结构
在这里插入图片描述

(2)实际意义

  • 工厂方法模式适合:凡是出现了大量的产品需要创建且具有共同的接口时,可以通过工厂方法模式创建。

(3)主要缺点

  • 工厂模式有一个问题就是,类的创建必须依赖与工厂类,也就是说如果想要程序生产新的产品,就必须要对工厂类进行扩展,这就违背了开闭原则。

2.5、抽象工厂模式

(1)类图结构
在这里插入图片描述

2.6、装饰器模式

(1)基本概念

  • 装饰器模式就是给一个对象动态的增加一些新的功能,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例

(2)类图结构
在这里插入图片描述
(3)实际意义

  • 可以实现一个类功能的扩展。
  • 可以动态的增加功能,而且还能动态的撤销(继承不行)。
  • 缺点:产生过多相似的对象,不易排错

(4)代码验证

// 定义一个接口
public interface Sourceable {
    // 自定义抽象方法
    void method();
}
// 被装饰类
public class Source implements Sourceable{
    @Override
    public void method() {
        System.out.println("素颜美可以如此之美!");
    }
}
/**
 * 装饰类
 */
public class Decorator implements Sourceable{
    private Sourceable source;

    public Decorator(Sourceable source) {
        this.source = source;
    }

    @Override
    public void method() {
        source.method(); //保证原有功能不变
        System.out.println("化妆之后你会更美!");
    }
}
/**
 * 测试类
 */
public class SourceableTest {
    public static void main(String[] args) {
        Sourceable source = new Source();
        source.method();
        System.out.println("--------------");
        // 使用装饰器进行修饰
        Sourceable sourceable = new Decorator(source);
        sourceable.method();
    }
}

2.7、代理模式

(1)基本概念

  • 代理模式就是找一个代理类替换原对象进行一些操作。
  • 比如我们在租房子的时候找中介,中介就是我们的代理。

(2)类图结构

在这里插入图片描述
(3)实际意义

  • 如果在使用的时候需要对原有的方法进行改进,可以采用一个代理类调用原有的方法,并且对产生的结果进行控制。
  • 使用代理模式,可以将功能划分的更加清晰,有助于后期维护。

(4)使用代理模式和装饰器模式的比较

  • 装饰器模式通常的做法是将原始对象作为一个参数传递给装饰者的构造器,而代理模式通常在一个代理类里创建一个被代理的对象
  • 装饰器模式关注于在一个对象上动态的添加方法,然而代理模式关注于控制对象的访问

(5)代码验证

public class Proxy implements Sourceable{
    // 被代理的对象
    private Source source;
    public Proxy(){
        source = new Source();
    }

    @Override
    public void method() {
        source.method();
        System.out.println("我和装饰器模式是不一样的!");
    }
}
/**
 * 测试类
 */
public class SourceableTest {
    public static void main(String[] args) {
        Sourceable source = new Source();
        source.method();
        System.out.println("--------------");
        // 使用装饰器进行修饰
        Sourceable sourceable = new Decorator(source);
        sourceable.method();
        System.out.println("--------------");
        Sourceable sourceable1 = new Proxy();
        sourceable1.method();
    }
}

2.8、模板方法模式

(1)基本概念

  • 模板方法模式主要指一个抽象类中封装了一个固定的流程,流程中的具体步骤可以由不同的子类分别实现,通过抽象类产生不同的结果。

(2)类图结构
在这里插入图片描述

(3)实际意义

  • 将多个子类共有的逻辑且相同的内容提取出现,用抽象方法的形式实现复用的目的
  • 不同的子类实现不同效果的多态,有助于后期的维护

本文地址:https://blog.csdn.net/qq_43242890/article/details/113841408

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

  • 设计模式 | 状态模式(state)

    设计模式 | 状态模式(state)

    定义: 定义: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 结构:(书中图,侵删) 一个抽象的状态类,拥有一个与状态相... [阅读全文]
  • 入门设计模式之桥梁模式

    入门设计模式之桥梁模式

    学习更多设计模式请参考:入门设计模式之汇总篇 桥梁模式:将抽象化与实现化脱藕,使二者可以独立的变化 大家应该对日志记录比较熟悉,不知道有没有自己写过... [阅读全文]
  • 6大设计原则之迪米特法则

    迪米特法则的定义 迪米特法则也称为最少知识原则,一个对象应该对其他对象有最少的了解. 通俗的讲,一个类应该对自己需要耦合或调用的类知道的最少,被调用... [阅读全文]
  • 抖音上热门的方法和技巧

    大家在玩抖音的过程中是不是会遇到下面的问题呢,是否玩了很长时间的抖音,并且花了很多原创的心血,作品却依然没有上热门是否感觉明明已经非常努力了,而热门... [阅读全文]
  • 创建型模式之原型模式(2.3)

    简单来说,通过复制的方式创建对象。 【举个栗子】:点外卖的收货地址 ... [阅读全文]
  • 创建型设计模式(上)

    创建型设计模式(上)

    单例模式: 1、定义:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类 2、实现过程要点: (1)单例类的... [阅读全文]
  • 23种设计模式之备忘录模式

    23种设计模式之备忘录模式

    备忘录模式的定义 定义: 在不破坏封装性的前提下, 捕获一个对象的内部状态, 并在该对象之外保存这个状态. 这样以后就可将该对象回复到原先保存的状态... [阅读全文]
  • (7/7)借助枚举说一下数据类型定义规范

    (7/7)借助枚举说一下数据类型定义规范

    Java是一种强类型语言。通俗说就是,在Java中存储的数据都是有类型的,而且必须在编译时就确定其类型。 编程规范里,也强调数据要有明确的数据类型。... [阅读全文]
  • 设计模式之适配器模式与外观模式(一)

    设计模式之适配器模式与外观模式(一)

    学习技术的过程总是需要慢慢积累的,所以持续学习是一个一直存在的事情。很高兴,我能一直通过看书输出设计模式相关的系列,也很感谢各位朋友的持续关注。 废... [阅读全文]
  • 创建型模式:原型模式

    创建型模式:原型模式

    个人公众号原文: "创建型模式:原型模式" 五大创建型模式之五:原型模式。 简介 姓名 :原型模式 英文名 :Prototype Pattern 价... [阅读全文]
验证码:
Copyright © 2017-2021  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com