首页 > 其他分享 >设计原则总结

设计原则总结

时间:2023-08-05 18:11:18浏览次数:24  
标签:总结 依赖 原则 低层 观察者 接口 组件 设计

目录

  • 封装变化
  • 针对接口编程,不针对实现编程
  • 多用组合(has-a),少用继承(is-a)
  • 为交互对象之间的松耦合设计而努力
  • 最少知识原则 LKP / 迪米特法则 Law of Demeter
  • 好莱坞原则
  • SOLID 原则
    • 单一职责原则 SRP
    • 开放关闭原则 OCP
    • 里氏替代原则 LSP
    • 接口隔离原则 ISP
    • 依赖倒置原则 DIP
  • DRY 原则
  • KISS 原则

封装变化

找出应用中需要经常变化的部分,把他们独立出来,改变这部分代码不影响其他部分。这几乎是每个设计模式背后的精神所在,即系统中某部分的改变不影响其他部分。

针对接口编程,不针对实现编程

针对接口编程,关键在于多态。变量/成员/形参的声明应该是抽象类/接口类/父类,即所有的代码操作的都是父类/接口类/抽象类(如 Animal),只会在一处会涉及到具体类(如 Cat 或 Dog),那就是在用 new 实例化具体子类对象时,而这部分代码最好也用工厂封装起来,这样甚至可以在运行时动态实例化不同的子类对象。

针对实现编程

标签:总结,依赖,原则,低层,观察者,接口,组件,设计
From: https://www.cnblogs.com/tengzijian/p/17608351.html

相关文章

  • 8.5日第五周总结
    编写一个静态表单页面和一个PHP动态网页,静态网页如下图1所示,在静态网页中通过get方法提交数据,在动态网页中检索这些数据并显示出来,结果如下图2所示,如果该同学的性别为男,则显示“您是一位男生!”,性别为女,则显示“您是一位女生!”。编写一个静态表单和一个PHP动态网页,表单如......
  • 7.31-8.5 每周总结
    这周大数据技术完成了zookeeper的学习,因为之前看的hbase看了一点之后,要安装hbase,就要先安装zookeeper,所以又去学习了zookeeper,算法与数据结构方面学习了链表,单链表,双链表,环形链表,学的不是很多,主要还是因为学习大数据遇到的问题很多,还有好多因为听不懂,又得返回去听,有些安装过程得一......
  • 《软件测试的艺术》原书第三版 - 第四章 - 测试用例的设计
    第四章测试用例的设计白盒测试白盒测试关注的是测试用例执行的程度或覆盖程序逻辑结构(源代码)的程度。完全的白盒测试是将程序中每条路径都执行到,然而对一个带有循环的程序来说,完全的路径测试并不切合实际。逻辑覆盖测试判定覆盖或分支覆盖是较强一些的逻辑覆盖准则。该准......
  • 代码随想录-字符串-c++总结
    关于字符串string一些库函数的使用,不太熟悉,导致开始做的时候比较磕磕绊绊主要用到了<algorithm>中的reverse,以及string的resize,substr,erase等,在这贴一个C++字符串(string)常用操作总结-知乎(zhihu.com)C++的string库用法总结-知乎(zhihu.com)反转字符串||中,每2k个字符进......
  • FPS游戏服务器设计的问题 转
    https://gwb.tencent.com/community/detail/109177FPS游戏服务器设计的问题转3.3k浏览一、追溯去gameloft笔试,有一个题目是说:叫你去设计一个FPS(第一人称射击游戏),你是要用TCP呢还是要用UDP,说明理由。二、学习这是两篇网上找到的文章,写非常不错。当时笔试的......
  • 一周总结
    这周进行了pta对应的实验报告b的一些l2内容发书写,也算是对pta练习的一个回顾。而在前35道题里,都使用Java语言进行了尝试并做到了大部分通过,感觉对于Java的感觉也算不错。对于Java的课程也进行了观看与思考。......
  • 8.4总结
    今天比较忙一点,弄学生会的事情,搞不明白为啥上面这么nc,自己给我发的文件有好几处错误,害得我两次重新弄那个,真的无语,哎,没办法了,今晚最后一稿交上去了,我觉得问题不大了,接着让我准备防洪的,我没照片怎么弄啊,还不让用网上的照片累心......
  • 假期总结
    今天学习了Hadoop的hive框架hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行......
  • 每周总结7.31-8.6
    学习总结博客四:Python与Hadoop生态系统的集成博客题目:学习总结四:Python与Hadoop生态系统的集成实践内容概要:探索如何将Python与Hadoop生态系统工具进行集成,如使用Python编写MapReduce程序、使用PySpark进行数据处理等。学习资源:推荐的Python与Hadoop集成教程、文档和实践资源。实......
  • Vue2框架总结
    Vue语法1.基本介绍vue两大特点:响应式编程、组件化。vue的优势:轻量级框架、简单易学、双向数据绑定、组件化、数据和结构的分离、虚拟DOM、运行速度快。vue是单页面应用,使页面局部刷新,不用每次跳转页面都要请求所有数据和dom,这样大大加快了访问速度和提升用户体验......