当前位置: 首页 > news >正文

web开发原则

1、开闭原则(Open Close Principle)  开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。  
2、里氏代换原则(Liskov Substitution Principle)  里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科 
 3、依赖倒转原则(Dependence Inversion Principle)  这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。  4、接口隔离原则(Interface Segregation Principle)  这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。  
5、迪米特法则(最少知道原则)(Demeter Principle)  为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。 
 6、合成复用原则(Composite Reuse Principle)  原则是尽量使用合成/聚合的方式,而不是使用继承

转载于:https://www.cnblogs.com/yumingzhao/p/9920926.html

相关文章:

  • 视频文件应该怎样进行无损压缩
  • 删除小脚本 srm
  • python爬虫系列(2.1-requests库的基本的使用)
  • 我的原型链家族将要崛起。
  • 一步步实现web程序信息管理系统之二--后台框架实现跳转登陆页面
  • 基于CentOS设置和使用Yum软件仓库
  • 深入浏览器事件循环的本质
  • 镶锆石、侧边指纹、双屏翻盖机,三星的这款2万块手机,只有土豪能懂
  • 2018自媒体运营吸粉3大途径
  • 闭包--闭包作用之保存(一)
  • 智能监控在袋鼠云中的应用
  • 一个UML类图示例
  • Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
  • eclipse 设置python 界面为默认展示
  • HTTP那些事
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 03Go 类型总结
  • Angular 响应式表单 基础例子
  • Druid 在有赞的实践
  • dva中组件的懒加载
  • Git学习与使用心得(1)—— 初始化
  • happypack两次报错的问题
  • javascript数组去重/查找/插入/删除
  • leetcode讲解--894. All Possible Full Binary Trees
  • Netty 4.1 源代码学习:线程模型
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • SOFAMosn配置模型
  • spring boot下thymeleaf全局静态变量配置
  • zookeeper系列(七)实战分布式命名服务
  • 阿里研究院入选中国企业智库系统影响力榜
  • 从零开始学习部署
  • 关于Java中分层中遇到的一些问题
  • 回流、重绘及其优化
  • 技术:超级实用的电脑小技巧
  • 每天10道Java面试题,跟我走,offer有!
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一个项目push到多个远程Git仓库
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 怎样选择前端框架
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​批处理文件中的errorlevel用法
  • #define、const、typedef的差别
  • #QT(智能家居界面-界面切换)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (万字长文)Spring的核心知识尽揽其中
  • (原)Matlab的svmtrain和svmclassify
  • (转)linux 命令大全
  • (转载)OpenStack Hacker养成指南
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版