美文网首页
设计模式

设计模式

作者: carlwu_186 | 来源:发表于2022-06-16 13:30 被阅读0次

设计模式分为三种类型,共23类。

(1)创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。

(2)结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

(3)行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。

6大设计原则

  • 单一职责原则(类和方法,接口)
    类、接口、方法的职责单一

  • 里式替换原则(基类和子类之间的关系)
    父类出现的地方,可以完全使用子类替代,不影响软件功能:

    1. 子类重写(overwrite)父类方法时,输出结果的类型应当<=父类方法的。
    2. 子类重载(overload)父类方法时,输入参数的类型应当>父类方法的。
  • 依赖倒置原则(依赖抽象接口,而不是具体对象)
    面向接口编程

  • 接口隔离原则(接口按照功能细分)
    接口不能过于庞大,按照模块功能拆分接口

  • 迪米特法则(类与类之间的亲疏关系)
    朋友类:成员变量、方法参数、返回 的类。
    一个类只和朋友类打交道
    一个类尽量少暴露public方法,外界对自己了解的越少越好
    思考能否加上final修饰,能加尽量加

  • 开闭原则(扩展开放,修改关闭)

设计模式

  • 工厂方法模式
    抽象出构造对象的方法,作为工厂模板,对象的new过程细节交由工厂实现来处理。
  • 抽象工厂模式
    产品有N个产品族,在抽象工厂类中就应该有N个创建方法,不同的产品族对应不同的产品抽象,产品族的抽象之间如果有共性,它们可以实现共同的上一级产品抽象约束。
  • 模板方法模式
    抽象类实现一些模板方法的业务逻辑,子类可以不关心模板方法的实现细节,但是可以通过模板成员变量或者其他抽象方法,影响抽象类中模板方法的执行。
  • 建造者模式
    和工厂方法模式类似,也是用来创建对象的,但是它更关注对象创建细节以及创建过程的定制。
  • 代理模式
    普通代理、动态代理
  • 原型模式
    通过原型拷贝创建新的对象。在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是在一个循环体内产生大量的对象时。直接在内存中拷贝,构造函数不会执行。要使用clone方法,类的成员变量上不要增加final关键字。要注意浅拷贝深拷贝的问题。
  • 中介者模式
    用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。在类图中出现了蜘蛛网结构,就要考虑使用中介者模式,有利于把蜘蛛网梳理成星型结构。
  • 命令模式
    调用者角色与接收者角色之间没有任何依赖关系,调用者实现功能时调用Command抽象的execute方法,Command的构造时会传入接收者角色,execute中通知到接收者,实现了调用者和接收者的解耦。
  • 责任链模式
  • 装饰模式
    装饰类继承被装饰类,可以扩展被装饰类的功能,并且被装饰类不知道装饰类的存在。同时装饰类持有被装饰类对象,内部的行为可以复用被装饰类。
  • 策略模式
    定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。每一个策略都是一个类。
    策略枚举:
public enum Calculator {
   ADD("+") {
       public int exec(int a,int b) {
           return a+b;
       }
   }
   SUB("+") {
       public int exec(int a,int b) {
           return a+b;
       }
   }

   String value = "";
   private Calculator(String _value) {
       this.value = _value;
   }
   public abstract int exec(int a,int b);
}

相关文章

  • 设计模式

    常用的设计模式有,单例设计模式、观察者设计模式、工厂设计模式、装饰设计模式、代理设计模式,模板设计模式等等。 单例...

  • 设计模式笔记汇总

    目录 设计原则 “依赖倒置”原则 未完待续... 设计模式 设计模式——策略模式 设计模式——装饰者模式 设计模式...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 浅谈JS的一些设计模式

    @(书籍阅读)[JavaScript, 设计模式] 常见设计模式 设计模式简介 设计模式概念解读 设计模式的发展与...

  • 前端设计模式

    JS设计模式一:工厂模式jS设计模式二:单例模式JS设计模式三:模块模式JS设计模式四:代理模式JS设计模式五:职...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 第1章 设计模式概述

    一、设计模式的概念 二、设计模式的历史 三、设计模式的要素 四、设计模式的分类 ■ 创建型设计模式 ■ 结构型设计...

  • iOS设计模式(3)适配器模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(4)抽象工...

网友评论

      本文标题:设计模式

      本文链接:https://www.haomeiwen.com/subject/qrtvertx.html