zoukankan      html  css  js  c++  java
  • 设计模式的产生背景和重要性

    设计模式的概念

    设计模式(design)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案

    这个术语是由四人帮在1990年代从建筑设计领域引入到计算机科学的。

    为什么要学习设计模式

    graph LR; a[开发任务]-- 一周开发一个版本 -->b[实现功能]

    第一个,设计模式可以让你的程序体现出更好的代码重用性、可靠性、可维护性、可以让程序体现出高内聚、低耦合的特性。

    • 代码重用性:即相同功能的代码,一次编写,多次使用
    • 可读性:即编码的规范性
    • 可扩展性:即可维护性,当需要增加新功能的时候,成本非常第,课扩展性就非常高

    高内聚&低耦合

    • 内聚:主要描述的是模块内部
    • 耦合:主要描述的是模块内部之间的关系
    • 高内聚:一个功能模块内部的元素,关联性非常强
    • 低耦合:模块之间的耦合性非常低

    第二个,掌握了设计模式,看一些源码会非常清晰。
    第三个,设计模式也是系统合理重构的指南针。

    graph LR; a[不改变原来软件的功能]-- 通过调整程序代码 -->b[趋于合理]

    设计模式原则

    何为设计模式的原则?

    • 程序员在编程时,应当遵守的准则
    • 设计模式的基础、依据
    • 不是孤立存在的相互依赖的、相互补充的,每一种都很重要
    名称 设计原则简介
    单一职责原则 类的职责要单一,不能将太多的职责放到一个类中
    开闭原则 软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能
    里氏代换原则 在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象
    依赖倒置原则 要针对抽象层编程,二不要针对具体类编程
    接口隔离原则 使用多个专门的接口来取代一个统一的接口
    合成复用原则 在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系
    迪米特法则 一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此之间通信,那么这两个类就不应当发生直接的互相作用,而是通过引入一个第三者发生间接交互
    转载请注明出处:https://www.cnblogs.com/stu-jyj3621
  • 相关阅读:
    滑动窗口(单调队列)
    蒜头君的排序
    P2024 食物链
    STL
    P2880 [USACO07JAN]平衡的阵容Balanced Lineup(RMQ的倍增模板)
    LCA的两种写法
    P1439 最长公共子序列(nlognLCS问题)
    P3383 【模板】线性筛素数
    P2158 [SDOI2008] 仪仗队(欧拉函数模板)
    alifhab
  • 原文地址:https://www.cnblogs.com/stu-jyj3621/p/14667131.html
Copyright © 2011-2022 走看看