美文网首页
设计模式

设计模式

作者: 范小闫 | 来源:发表于2017-05-09 09:52 被阅读0次

设计模式的六大原则

  • 开闭原则
    对扩展开放,对修改关闭。
  • 里氏代换原则
    任何出现基类的地方都可以用其子类去替换。
  • 依赖倒转原则
    依赖抽象而不依赖具体实现。
  • 接口隔离原则
    尽量使用多个隔离的接口而不是单个接口来降低耦合。
  • 迪米特法则
    一个实体应该尽量少的与其它实体间有任何关系,使得类和模块间相互独立。
  • 合成复用原
    尽量使用合成/聚合的方式而不是继承来复用原有类的特性功能。

结构型模式

适配器模式

把原有类的功能进行封装,转换成另一个接口的实现。使能通过调用新接口来调用原有类的功能

Paste_Image.png
class Original
public class Original{
  
  public void originalMethod(){
    //原始功能实现
  }

}

interface Target

  public interface Target{
    
    void newMethod();
  }

Class Adapter

  public class Adapter{
    private Original original;
    public Adapter(Original original){
      this.original = original;
    }
    @Override
    public void newMethod(){
      original.originalMethod();
    }
  }

装饰模式

装饰类和被装饰类实现相同的接口,装饰类通过持有被装饰类的实例来动态增强被装饰类的功能

Paste_Image.png

interface Common

  public interface Common{
    
    void commonMethod();
  }

Class Source

  public class Source implements Common{
    
    @Override
    public void commonMethod(){

    }
  }

class Decorator

  public class Decorator implements Common{
    private Source source;
    public Adapter(Source source){
      this.source = source;
    }
    @Override
    public void commonMethod(){
      //增强逻辑
      ......
      source.commonMethod();
      //增强逻辑
      ......
    }
  }

代理模式

代理对象提供一层封装来控制对被代理对象的访问
与装饰模式的实现基本相同,不同点是:装饰模式关注的是对被装饰模式功能的增强,被装饰模式一定会执行。代理模式关注的是对被代理对象的访问控制,被代理模式不一定会执行。

外观模式

通过对一系列复杂有一定关联性的逻辑进行封装,解除他们之间的依赖性,屏蔽底层复杂的细节,对外提供一个统一的简单的接口
例如:回家之后就要把家里的灯打开,空调打开,热水器打开。离开家的时候又要把所有的灯,空调,热水器都关了。

Paste_Image.png

class Light

  public class Light{
    public void start(){
      
    }
     public void stop(){
      
    }
  }

class Facader

  public class Facader{
    Light light;
    Conditinor conditionorl
    WaterHeader waterHeader;
    public Facader(){
      light = new Light();
      conditionor = new Conditionor();
      waterHeader = new WaterHeader();
    }
    public void start(){
      light.start();
      conditionor.start();
      waterHeader.start();
    }
    public void stop(){
      light.stop();
      conditionor.stop();
      waterHeader.stop();
    }
  }

简单记录自己对设计模式相关的理解,便于复习用

相关文章

  • 设计模式

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

  • 设计模式笔记汇总

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

  • 设计模式

    《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/uvhvtxtx.html