博客
关于我
设计模式七大原则
阅读量:754 次
发布时间:2019-03-23

本文共 723 字,大约阅读时间需要 2 分钟。

技术设计模式:核心原则与实践

设计模式的初衷

在编写软件时,我们面临代码耦合性、内聚性以及可维护性、可扩展性等多重挑战。设计模式的核心目的在于帮助开发人员在保证代码功能的前提下,实现以下目标:

  • 代码重用性:避免重复编写相同功能的代码,提升开发效率。
  • 可读性:通过规范代码结构,使代码更易于其他程序员理解和维护。
  • 可扩展性:当新功能需求到来时,能够轻松添加而不影响现有功能。
  • 可靠性:增加新功能不会对原系统造成影响,即所谓的“可维护性”。
  • 设计模式的七大原则

    在软件开发实践中,遵循设计模式的七大原则是确保软件设计高效、可靠的关键。以下是这些原则的详细阐述:

  • 单一职责原则

    每个类或模块应专注于单一功能或责任,避免因过于宽泛而导致内部功能混杂。

  • 接口隔离原则

    在系统间交互时,应通过明确的接口进行通信,避免过度耦合。

  • 依赖倒转原则

    类与其依赖项之间的关系应倒置,具体到由哪个类依赖哪个类,通常实现依赖于抽象类或接口。

  • 里氏替换原则

    这个原则强调的是可以通过子类替换父类,但不建议直接使用父类类型。同时反对使用简单的类型替换复杂的类型。

  • 开闭原则

    类各部分应对外界扩展开放,但对自身扩展闭合。系统设计应预留扩展的可能性,同时保证核心逻辑不变。

  • 迪米特法则

    只允许使用直接发音名的类进行操作,避免其他类对该对象进行操作,从而减少类间耦合。

  • 合成复用原则

    encapsulation of existing代码复用已有的功能,通过_delegate_类来引用和管理多个对象的行为,使系统代码更灵活。

  • 通过理解和遵守这些原则,可以显著提升代码的质量、可维护性和扩展性,降低耦合性,提升整体系统的内聚性。这些原则不仅是设计模式的基础,更是软件设计的基本要求。

    转载地址:http://mdtzk.baihongyu.com/

    你可能感兴趣的文章
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    查看>>
    no connection could be made because the target machine actively refused it.问题解决
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named 'pandads'
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>
    No qualifying bean of type XXX found for dependency XXX.
    查看>>