dart设计模式的六大原则
设计模式
参考 模式分析,模式难点,模式解决问题,优点,缺点,模式应用场景,模式代码(基于dart)
六大原则
开闭原则(Open-Closed-Principle)
核心:一个软件实体应当对拓展开放,对修改关闭。即:软件实体应尽量在不修改原有代码的情况下进行拓展。
里氏代换原则(Liskow-Substitution-Principle)
核心:所有引用基类(父类)的地方,都必须能透明地使用其子类的对象。
一个软件实体如果使用的是一个父类,那么一定适用于其子类,而且他察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单地说,子类必须能够替换掉它们的父类型。
依赖倒转原则(Dependency-Inversion-Principle)
核心: 抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而非针对实现编程。
思想: 抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即 程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之就是面向过程化设计了。
原则:
- 高层模块不应该依赖于低层模块。两个都应该依赖于抽象。
- 抽象不应该依赖细节。细节应该依赖于抽象。
单一职责原则(Single-Responsibility-Principle)
核心:一个类只负责一个功能领域中相应的职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
思想:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。【Eg:游戏的界面组成与逻辑组成分离】
接口隔离原则(Interface-Segregation-Principle)
核心:使用多个专门的接口,而不使用单一的总接口。即 客户端不应该依赖于那些它不需要的接口。
迪米特法则(Law-Of-Demeter)
核心:一个软件实体应当尽可能少地与其他实体发生作用。(无熟人难办事)
思想:也叫最少知识原则。如果两个类不彼此通信,那么这两个类就不应当直接地发生相互作用。如果其中一个类需要另一个类的某一个方法的话,可以通过第三者转发这个调用。(不要和陌生人说话)
原则:在迪米特法则中,对于一个对象,其朋友包括如下几类:
- 当前对象 this
- 以参数形式传入到当前对象方法中的对象
- 当前对象的成员对象
- 若当前对象的成员你对象是一个集合,那么集合中的对象也都是朋友
- 当前对象所创建的对象
相关文章
- Windows 10系统怎么进入安全模式?Windows 10系统进入安全模式步骤
- 教你三步开启Windows 10/Windows 11上帝模式:操控系统更方便了
- 如何更改 Ubuntu 的终端的颜色
- DevEco Studio本地模拟器上线了,快来体验吧
- Steam数据:32位Windows系统已被玩家彻底淘汰
- Linux磁盘空间被吃掉了?这样排查不背锅!
- 微软正测试补丁 修复Windows 11右键菜单性能问题
- HarmonyOS流转之跨端迁移
- Windows 11正式版问题多多:微软确认正修复右键菜单性能
- Firefox 火狐浏览器 94 发布:iOS/安卓版带来全新主页,跳回最后书签,macOS 版支持省电模式
- Windows 11被曝未修复上一代Bug:System32路径下存在无数空文件夹
- 部分开发版Windows 11已开启时间炸弹 再不升级将被微软强制重启
- Windows 11在C盘创建N多空白文件夹:强迫症网友表示很崩溃
- Shrootless:MacOS漏洞可绕过系统完整性保护
- 一文完全读懂 Linux 中断处理
- HarmonyOS Sample之PixelMap图像功能开发
- 80%的 Linux 都不懂的内核问题
- Firefox 火狐浏览器将在 Linux 上使用 EGL,性能与功耗表现更好
- Windows 11用户反馈无法打开Snipping Tool
- 跟 Windows 10 相同,Windows 11 也会在 System32 目录下创建大量空文件夹