美文网首页
设计模式

设计模式

作者: _1633_ | 来源:发表于2020-07-07 08:58 被阅读0次

设计

        设计 即 按照哪一种思路或者标准来实现功能。

        功能相同,可以有不同设计方案来实现,伴随着需求增加 设计的作用才能体现出来。

      《UNIX/LINUX设计哲学》

            准则1:小即是美

            准则2:让每个程序只做好一件事

            准则3:快速建立原型(快速完成基本效果,后续在慢慢迭代)

            准则4:舍弃高效率而取可移植性

            准则5:采用纯文本来存储数据(人可以读取文本,采用二进制存储数据更快,但是没有可读性)

            准则6:充分利用软件的杠杆效应(软件复用

            准则7:使用 shell 脚本来提高杠杆效应和可移植性

            准则8:避免强制性的用户界面

            准则9:让每个程序都称为过滤器(就比如 中间件,每个程序只做一件事情)

            小准则:允许用户定制环境;尽量使操作系统内核小而轻量化;使用小写字母并简写;沉默是金;各部分之和大于整体;寻求 90%的解决方案

五大设计原则    

    SOLID 五大设计原则

        S - 单一职责原则

            一个程序只做好一件事;

            如果功能过于复杂就拆分开,每个部分保持独立。

            单一职责原则的实现方法:单一职责原则是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离,再封装到不同的类或模块中。而发现类的多重职责需要设计人员具有较强的分析设计能力和相关重构经验。

        O - 开放封闭原则

            对扩展开放,对修改封闭;

            增加需求时,扩展新代码,而非修改已有代码;

            这是软件设计的终极目标。

            开闭原则的实现方法: 可以通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。

       L - 里氏置换原则

            子类能覆盖父类;

            父类能出现的地方子类就能出现;

            里氏替换原则通俗来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。

            JS中使用较少(弱类型 & 继承使用较少)。

     I - 接口独立原则

            保持接口的单一独立,避免出现 ' 胖接口 '(还是每一个程序只做一件事);

            JS 中没有接口(Typescript 例外),使用较少;

            类似于单一职责原则,这里更关注接口。

       D - 依赖倒置原则

            面向接口编程,依赖于抽象而不依赖于具体;

            使用方只关注接口而不关注具体类的实现;

            JS 中使用较少(弱类型 & 没有接口)。

        注意在 JS 中 SO 体现较多,LID 体现较少

            示例 :用 Promise 来说明 SO

                单一职责原则:每个 then 中的逻辑只做好一件事;

                开放封闭原则: 如果新增需求,扩展 then。


模式

     23种 设计模式 分为三大类型:

        创建型:工厂模式单例模式、原型模式,抽象工厂模式,建造者模式;

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

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


总结

    每种模式 都是 根据 设计原则 中的某些准则 而产生的解决方案或者思路, 需要充分理解 设计原则,进而更好的理解每种模式。

相关文章

  • 设计模式

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

  • 设计模式笔记汇总

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

  • 设计模式

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