Design Principle设计原则 最近由于碰到要参与设计一个音频处理系统,有人提议用一个大的全局变量结构体来做状态信息交流的地方,引起了我对设计一个系统的思考,于是找到了如下资料,当然,关于这个系统也是有待验证,不能说全局变量就是不好,因为这个系统并不会并发执行,而且资源充足. 我反正有点疑虑,但是会继续验证. 以下为Gof的六大设计原则,出自<设计模式>. Single Responsibility Principle -SRP There should never be more…
本文由@呆代待殆原创,转载请注明出处. 写在前面:所谓设计原则并不是一定要遵守的法则,只是一种建议,因为保持这些原则本身会有一定代价,若是这些代价超过了带来的好处就得不偿失了,所以一切还是以简单为准. 原则一:分离变与不变的部分. 定义:找出代码中会发生变化的部分,并将其和保持不变的部分分离. 作用:提升可维护性.将会变化的部分分离后,在以后的修改过程中就不会影响到其他不变的部分. 原则二:面向接口编程. 定义:面向接口编程,而不是面向某个实现. 作用:降低耦合.这里的接口有多个含义,并不仅仅只…
1.单一职责原则:每个类都只有一个职责,修改一个类的理由只有一个 2.开放-封闭远程(OCP):开放是指可拓展性好,封闭是指一旦一个类写好了,就尽量不要修改里面的代码,通过拓展(继承,重写等)来使旧的类满足新的需求,而不是修改一个类里面的代码. 3.依赖倒转原则:高层模块不应该依赖底层模块,两个都应该依赖抽象:抽象不应该依赖细节,细节应该依赖抽象.底层模块例如很多工具类,例如专门用于管理sql连接的类,管理文件,管理socket连接的类,高层类指具体实现需求的类.高层类和底层类都不应该相互依赖,…
6大原则: 单一职责原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则 开闭原则 一.单一职责原则 定义:应该有且仅有一个原因引起类的变更 带来的好处: 类的复杂性降低,实现什么职责有清晰明确的定义 可读性提高 可维护性提高 变更引起的风险降低 对于单一职责原则,建议接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化. 二.里氏替换原则 继承的优点: 代码共享,减少创建类的工作量,子类拥有父类的属性和方法 提供代码重用性 提供代码扩展性 提供产品或项目开放性 继承缺点: 继承是…
Design Principle vs Design Pattern设计原则 vs 设计模式 来源:https://www.tutorialsteacher.com/articles/difference-between-design-principle-and-design-pattern In software engineering, design principle and design pattern are not the same.在软件工程中,设计原则和设计模式是不同的. Des…
目录 设计原则 设计模式 设计原则 DRY (Don't repeat yourself 不要重复) KISS (Keep it stupid simple 简单到傻子都能看懂) YAGNI (You Aren't Gonna Need It 你不会需要它的) CCP 共同闭包 CRP 共同复用 高内聚.低耦合 惯例优先配置 SCO 关注点分离 ADP 无依赖环 SOLID 面向对象设计原则 SOLID S - Single-responsiblity Principle 单一职责 O - Op…
定义 一个软件实体(如类.模块.函数)应当对扩展开放,对修改关闭. 定义解读 在项目开发的时候,都不能指望需求是确定不变化的,大部分情况下,需求是变化的.那么如何应对需求变化的情况?这就是开放-关闭原则要谈的. 开放-封闭原则的思想就是设计的时候,尽量让设计的类做好后就不再修改,如果有新的需求,通过新加类的方式来满足,而不去修改现有的类(代码).那么在实际的项目开发中,是否能做到绝对的对修改关闭呢?答案一般也是否定的.既然这样,那么就要求我们在开发前,去找出变化点,然后针对变化点构造抽象,隔离出…
开-闭原则就是软件实体应当对扩展开放,对修改关闭.(Software entities should be open for extension,but closed for modification.) 正如牛顿三大定律在经典力学中的位置一样,开闭原则是面向对象的可复用设计(Object Oriented Design或OOD)的基石,是最基础的设计原则,其它的设计原则都是开闭原则的具体形态,也就是说其它的设计原则是指导设计的工具和方法,而开闭原则才是其精神领袖.依照编程语言的称谓,开闭原则是…
一.概要 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计模式使代码编写真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样.可复用.可扩展.可维护 设计模式是GOF(Group Of Four Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides )所著的<设计模式:可复用面向对象软件的基…
1.AngularJS: 开源的JS框架,用来开发单一页面应用,以及数据操作频繁的场景:2.设计原则: ①YAGNI原则:You Aren't Gonna Need It! 不要写不需要的代码! ②KISS原则:Keep It Simple and Stupid! 代码保持简洁和具有表现力! --语义化标记.注释.变量或者方法的命名.减少嵌套: ③DRY原则:Don't Repeat Yourself! 模块的封装! --提高代码复用率,降低测试难度方便后期的迭代和维护: ④high cohes…