首页 > 其他分享 >设计模式六大原则详解

设计模式六大原则详解

时间:2022-12-06 11:13:09浏览次数:49  
标签:六大 依赖 原则 接口 详解 模块 设计模式

引言

对于设计模式,自己很早之前就看了好多本设计模式书籍,其中一些还看了好几遍,也一直希望自己能在编码的时候把这些设计模式用上去。可是,在日常的打码中,用的做多的就是单例,其次是观察者和建造者模式 ( builder ) 用得比较多,其他的基本很少用到。

用不到的原因是还是不能够理解设计模式的思想,无法将这些设计模式和编码遇到的问题联系起来,从而用不到设计模式。
其实设计模式的提出都是为了解决一个常见的问题而总结出来的办法。所以当你思考采用何种设计模式的时候,你应该先问问自己当前问题的是什么?根据问题去选取合适的设计模式。
等你熟悉了设计模式的以后,你会发现部分设计模式之间存在包含关系,甚至很相像,但是不同的设计模式解决的问题是不一样的。
当我们在设计一个模块的时候可以从以下几个角度去考虑:
``

  • 这个模块与其他模块的关系是什么样的?
  • 模块中哪些部分是不变的,哪些部分是在不断变化的,是如何变化的?
  • 类与类之间的关系是怎么样的,为什么需要依赖,怎么可以不依赖?
  • 要不要加一个接口?接口的存在是为了解决什么问题?

当然,本文并不是教你是如何使用设计模式。而是讲解设计模式的设计原则。设计模式在被设计出来的时候,也是遵循一些规则的。
设计模式六大原则,具体如下:

  • 单一职责原则(类和方法,接口)
  • 开闭原则 (扩展开放,修改关闭)
  • 里氏替换原则(基类和子类之间的关系)
  • 依赖倒置原则(依赖抽象接口,而不是具体对象)
  • 接口隔离原则(接口按照功能细分)
  • 迪米特法则 (类与类之间的亲疏关系)
    每一个设计原则旁边都有个括号,是用来解释,或者描述应用范围的。下面将详细介绍每一个原则。

标签:六大,依赖,原则,接口,详解,模块,设计模式
From: https://www.cnblogs.com/likex/p/16954648.html

相关文章

  • 【每天一个java设计模式(一)】 - 工厂模式
    工厂模式是Java中最常用的设计模式之一。它属于创建型模式,提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同......
  • 【每天一个java设计模式(零)】 - 设计模式基本概念及七大设计原则
    设计模式概述设计模式是什么?它是软件开发人员在软件开发过程中经过相当长的一段时间的试验和错误总结出来的面临的一般问题的解决方案;它是一套被反复使用的、多数人知晓的、......
  • Android中的dumpsys命令详解
    1、命令说明dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息命令格式:adbshelldumpsys[systemserbices]2、系统服务查询如果直接运行adbshelld......
  • 详解监听MySQL的binlog日志工具分析:Canal
    Canal是阿里巴巴旗下的一款开源项目,利用Java开发。主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费,目前主要支持MySQL。GitHub地址:https://github.com/alib......
  • react-native 导航组件react-navigation详解
    react-native导航组件react-navigation详解Lyan_2ab3关注0.2622018.08.1318:08:47字数716阅读2,285继续上篇文章,还是先看下上篇文章react-navigation的官......
  • IP地址详解
     局域网局域网:一般称为内网简单局域网的构成:交换机、网线、pc(其它IT终端)交换机:用来组建内网的局域网设备IP地址ip地址就是一个唯一标识,是一段网络编码(二进制......
  • Day32:包装类详解
    包装类1.1包装类概述基本数据类型值对应的引用数据类型称为包装类。由于我们的基本数据类型是不作为对象使用的,但是很多时候会用到对象作为参数,Java提供了包装类将基本......
  • Selenium4+Python3系列(十一) - Page Factory设计模式
    写在前面:PageObject模式,目的是将元素定位和元素操作分层,只接触测试内容,不写基础内容,便于后续对自动化测试用例体系的维护,这是中心思想,也是核心。那么我们继续将简洁延续,......
  • Selenium4+Python3系列(十一) - Page Factory设计模式
    写在前面:PageObject模式,目的是将元素定位和元素操作分层,只接触测试内容,不写基础内容,便于后续对自动化测试用例体系的维护,这是中心思想,也是核心。那么我们继续将简洁延续......
  • 动态规划详解
    P1470[USACO2.3]最长前缀LongestPrefix这道题目感觉和  P1832A+BProblem(再升级)有点类似。将一个合法答案再加上另外一个合法答案组成新的组合,而这个组合一定合法......