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

网站开发验收报告模板快速建站哪个平台好

网站开发验收报告模板,快速建站哪个平台好,局域网网站制作,做目录的网站如果我说,要写好代码,必须违背这些原则,我想所有人都会骂:疯子、胡说八道、哗众取宠,找打! 以前我也会骂那个疯子,但现在不会,而且我会肯定地、负责任地说:这是真的&…

如果我说,要写好代码,必须违背这些原则,我想所有人都会骂:疯子、胡说八道、哗众取宠,找打!

以前我也会骂那个疯子,但现在不会,而且我会肯定地、负责任地说:这是真的!

首先我们要知道这六大原则是什么。

六大设计原则主要是指:

单一职责原则(Single Responsibility Principle);
开闭原则(Open Closed Principle);
里氏替换原则(Liskov Substitution Principle);
迪米特法则(Law of Demeter),又叫“最少知道法则”;
接口隔离原则(Interface Segregation Principle);
依赖倒置原则(Dependence Inversion Principle)。
也就是我们说的SOLID原则。但从来没有人告诉我们这六大原则之间是什么关系,他们之间能同时满足吗?

要知道任何事物都不是孤立地存在的,它总是同周围其他事物相互联系着、相互依赖着、相互制约着、相互作用着。

这些原则之间同样也有联系,也是有主次关系。其中开闭原则是这之中最重要,最根本的一个原则,是系统架构的根本目的,其他五个原则是指导服务于开闭原则。开闭原则是我们的根本目的,一切要从开闭原则出发,它是唯一判断标准。

这五个指导原则的共同目的是一样的,都是为了达成系统对扩展开放,对修改关闭。但在实际中我们要想做到开闭,就不得不去违背这五个原则。因为开闭是根本要求,而五个原则又不是唯一的实现途径,必然导致其他方式跟他们起了冲突。如果为了开闭,而要违背原则,我们也不得不去违背,否则就本末倒置了。

首先是迪米特法则,该法则表明一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少。

那我们要如何做到最少呢?常用的方法就是建立一个中介类封装复杂的操作,但这只是把复杂的东西转移到中介类了,中介类就会违背了这个原则。当然我们可以在中介类里面再封装其他中介类,一层层封装下去,但这造成的一个后果就是:系统中存在大量的中介类,这些类之所以存在完全是为了传递类之间的相互调用关系。就会出现《重构》说的坏味道:过度耦合的消息链(Message Chains)。出现坏味道往往无法满足开闭原则。

为了满足开闭原则,某些情况下我们就必须做一个取舍,中介类要几个?要在哪一个中介类去违背它?于是我们就得到一个看似矛盾的结论为了满足迪米特法则而不得不去违背它!

迪米特法则跟单一职责原则也是冲突的,单一职责说的是一个类应该有且只有一个改变的原因。也就是一个类只负责一个功能,但我们的业务场景往往是需要多个功能配合使用的,这些功能粒度如果拆的很细,我们为了完成业务功能,就必须要对很多的类有了解。可以看出单一职责跟中介类是矛盾的,而中介类的目的又是为了满足迪米特法则,进而得出迪米特法则跟单一职责也是矛盾的。

我们往往要选择违背单一职责!可以负责任,肯定地说:单一职责越得到充分的体现,违背开闭原则的地方就越多。

首先单一职责原则会引起类的剧增,给维护带来非常多的麻烦。其次本来一个类可以实现的行为硬要拆成两个类,然后再使用聚合或组合的方式耦合在一起,人为制造了系统的复杂性。最后一个类究竟拆到什么程度才算单一,往往是把握不住的,里面的水很深,如果为了满足这个原则,强行去考虑,只会适得其反,捡了芝麻丢了西瓜。

http://www.yayakq.cn/news/412981/

相关文章:

  • 网站 免备案网络有限公司经营范围
  • 购物网站开发设计网络技术网站
  • 论坛网站源码下载安徽手机版建站系统信息
  • 河北省网站备案重庆建工
  • 南昌做网站建站的百度一下首页网页手机版
  • 网站开发 小程序开发网站建设资讯站
  • 网站建设丶金手指下拉14北京网络技术有限公司
  • 珠海手机微信网站建设小程序开发贵州省住房和建设厅网网站
  • 辽宁企业网站建设公司简单的网站建立怎么做
  • 加强和改进网站建设建设方案wex5可以做网站吗
  • 加拿大服务器做网站wordpress+漂亮的博客
  • 怎么做淘宝客优惠劵网站申请域名要钱吗
  • 网站建设合同 保密条款iis5.1怎么新建网站
  • 河南网站备案小程序启动失败 错误码
  • 河南做网站需要多少钱龙岗网站建设公司怎么样
  • 微信网页宣传网站怎么做的网站建设 样板
  • 视频网站怎么做统计自学网站
  • 商城网站设计图国内cms排行
  • 深圳市做物流网站seo怎么做教程
  • 试剂网站建设成免费crm软件app
  • 医疗器械网石家庄seo管理
  • 网站建设的市场需求视频网站的防盗链是怎么做的
  • 天水市网站建设西安百度关键词包年
  • 做航模的网站办公室装修专业网站
  • 那个网站做图片好看的百度网站统计
  • 做兼职最好的网站软件技术一般在哪上班
  • 网站备案服务硬件开发工程师待遇
  • 做导购网站有哪些北京建设执业网站
  • 余姚微信网站建设建设银行深圳天健世纪支行网站
  • 东莞市手机网站建设wordpress 加载图片不显示图片