1.AngularJS: 开源的JS框架,用来开发单一页面应用,以及数据操作频繁的场景:2.设计原则: ①YAGNI原则:You Aren't Gonna Need It! 不要写不需要的代码! ②KISS原则:Keep It Simple and Stupid! 代码保持简洁和具有表现力! --语义化标记.注释.变量或者方法的命名.减少嵌套: ③DRY原则:Don't Repeat Yourself! 模块的封装! --提高代码复用率,降低测试难度方便后期的迭代和维护: ④high cohes…
在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 单一职责原则 其实就是开发人员经常说的"高内聚,低耦合" 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 开闭原则 核…
虽然之前学习Java时有接触过面向对象的设计思想,但因当时Java没学好.所以导致这两天讲php的面向对象设计时,感到没有头绪,这也反应了我练习少和逻辑能力的不足.而MVC设计思想 面向对象就是要将系统中用到的所有事物抽象成对象,然后在使用时实例化出来. MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表). View(视图)显示数据(数据库记录). Control…
一.找出应用中可能需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起. 把会变化的部分取出并“封装”起来,好让其他部分不会受到影响.这样,代码变化引起的不经意后果变少,系统变得更有弹性. 下面是这个原则的另一个思考方式:“把会变化的部分取出并封装起来,以便以后可以轻易地改动或扩充此部分,而不影响不需要变化的其他部分”.这样的概念很简单,机会是每个设计模式背后的精神所在.所有的设计模式都提供了一套方法让“系统中得某部分改变不会影响其他部分”. 二.针对接口编程,而不是针对是吸纳编程…
原则1:单一职责 原则2:里氏替换原则(子类扩展但不改变父类功能) 原则3:依赖倒置原则 原则4:接口隔离原则 原则5:迪米特法则(最少知道原则) 原则6:开闭原则 原则1:单一职责原则 说到单一职责原则,很多人都会不屑一顾. 因为它太简单了,稍有经验的程序员即使从来没有读过设计模式.从来没有听说过单一职责原则,在设计软件时也会自觉的遵守这一重要原则,因为这是常识. 在软件编程中,谁也不希望因为修改了一个功能导致其他的功能发生故障. 而避免出现这一问题的方法便是遵循单一职责原则. 虽然单一职责原…
它的设计原则,和设计模式,是否该用它? ============================================================================= 在"设计模型"一章中.我们提到设计原则和设计模式是互补的,设计原则和设计模式互补体如今:设计原则主要用于指导"类的定义"的设计,而设计模式主要用于指导"类的行为"的设计. 举一个非常easy的样例:如果我们要设计一个图形类Shape.这个类既支持三角形.…
从今年的七月份开始学习设计模式到9月底,设计模式全部学完了,在学习期间,总共过了两篇:第一篇看完设计模式后,感觉只是脑子里面有印象但无法言语.于是决定在看一篇,到9月份第二篇设计模式总于看完了,这一篇看完,脑子里面已经能够对绝大多数的设计模式能够说出其核心思想且可以画出类图也知道应用场景,算是一个进步,但可能还不能够特别熟练的使用,可能需要多多巩固和强化使用才能够完全理解设计模式的精髓所在.学习期间收获还是不少的: 1.从只听过设计模式到学习了所有的设计模式,并写了不少设计模式的博客,在公司期间…
开-闭原则就是软件实体应当对扩展开放,对修改关闭.(Software entities should be open for extension,but closed for modification.) 正如牛顿三大定律在经典力学中的位置一样,开闭原则是面向对象的可复用设计(Object Oriented Design或OOD)的基石,是最基础的设计原则,其它的设计原则都是开闭原则的具体形态,也就是说其它的设计原则是指导设计的工具和方法,而开闭原则才是其精神领袖.依照编程语言的称谓,开闭原则是…
原文出自:http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html 开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的.灵活的系统. 定义: 一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. Softeware entities like classes,modules and functions should be open for extensio…
前言 其实没有设计模式我们也能完成开发工作.但是为什么需要设计模式呢?让你看起来很牛,没错这个算一个.让你的代码层次感分明,可读性强而且容易维护.让你像我一样有更多的摸鱼划水时间. 可能有人说我一个类或者方法就干完的东西,你搞了七八个.当然使用设计模式也是要斟酌的.一些简单稳定的业务也不推荐使用设计模式.设计模式多用于复杂多变的业务或者要求适配性.扩展性更强的场景中.不要为了设计模式而设计模式. 接下来我们结合实际开探讨一下设计模式的一些原则. 1.开闭原则 public class Selle…
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据 7 条原则来开发程序,从而提高软件开发效率.节约软件开发成本和维护成本. 各位代码界的大佬们总结出的七大设计原则,还是需要好好了解一下 1.开闭原则 开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作<面向对象软件构造>(Object Oriented Software Construction)中提出:软件实…
前言 ​ 今天开始我们专题的第一课了,也是我开始进阶学习的第一天,我们先从经典设计思想开始,看看大牛市如何写代码的,提升技术审美.提高核心竞争力.本章节参考资料书籍<Spring 5核心原理>中的第一篇 Spring 内功心法(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的). 开闭原则 开闭原则(Open-Closed Principle,OCP)是指一个软件实体(如类,模块和函数)应该对扩展开发,对修改关闭.所谓的开闭,也正是对扩展和修改的两种行为的一个原则.它强调的是…
前言 ​ 今天开始我们专题的第二课了,本章节继续分享软件架构设计原则的下篇,将介绍:接口隔离原则.迪米特原则.里氏替换原则和合成复用原则.本章节参考资料书籍<Spring 5核心原理>中的第一篇 Spring 内功心法(没有电子档,都是我取其精华并结合自己的理解,一个字一个字手敲出来的). 接口隔离原则 ​ 接口隔离原则(Interface Segregation Principke,ISP)是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口.这个原则知道我们在设计接口…
学习设计原则是学习设计模式的基础.在实际开发过程中,并不要求所有代码都遵循设计原则,我们要考虑人力.时间.成本.质量,不能刻意追求完美,但要在适当的场景遵循设计原则,这体现的是一种平衡取舍,可以帮助我们设计出更加优雅的代码结构. 下面我整理了七大软件设计原则精华总结,再不会找我. 1.Tom弹架构:开闭原则(Open-Closed Principle,OCP) 2.Tom弹架构:依赖倒置原则(Dependence Inversion Principle,DIP) 3.Tom弹架构:单一职责原则(…
总结了下J2EE的MVC模式开发原则,很多细节处理好了是很有利于开发与维护的. 下面就从各层说起. 视图层 主要是客户端的显示,主要是JSP和HTML,随着Web的不断发展,许多基于Javascript的富应用客户端不断出现,越来越流行通过JSON格式进行前后台数据交互. 控制层: Control: 作为处理分发器,组装前台需要的数据给客户端. 服务层(Service 业务逻辑层): 存放业务控制,在Service层中将dao的操作组合起来放入事务中.操作文件之类的都放到Service中. Se…
1 设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作<建筑模式语言:城镇.建筑.构造>中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇.邻里.住宅.花园和房间等进行设计的基本模式. 1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式…
软件的可维护性和可复用性 知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成: 过于僵硬(Rigidity)  过于脆弱(Fragility)  复用率低(Immobility)  黏度过高(Viscosity) 软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质: 可扩展性(Extensibility)  灵活性(Flexibility) 可插入性(Pluggabil…
ASP.NET MVC 学习笔记-7.自定义配置信息   ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettings> 2 <add key="LogInfoProvider" value="Cookie" />//登录信息保存方式 3 </appSettings> 但是这些配置都是单个字符串信息,在某些情况下,无法做到灵活配置. 针对这种情况,使用…
MVC 皆知为 Model-View-Controller 请求模型-〉Client发现请求-〉Controller接收+处理-〉返回Model给前端-〉前端接收处理模型Result 但是最近发现一个请求仿佛违背了MVC当初的设计原则(请高手指点一二): 定义模型: public class Person{public string Name { get; set; } public int Age { get; set; }} Controller中Action: // GET: /Main/…
在设计程序.系统框架或者类时,最主要考虑的事情就是代码的可扩展性,而不是完成功能即可.因此,提倡使用面向对象设计的最佳实践和基本原则. 1.       单一职责原则(SRP:The Single Responsibility Principle) 对象应承担单一的责任,它们的行为应该关注在它的责任上.比如,视图应该只关注UI的渲染,而不需要任何数据访问逻辑. 通常,代码中要提防的是名称为XXXManager的类,这种类可能包含了更多的职责. 2.       开放封闭原则(OCP:Open C…
http://erlang.org/doc/design_principles/des_princ.html 图和代码皆源自以上链接中Erlang官方文档,翻译时的版本为20.1. 这个设计原则,其实是说用户在设计系统的时候应遵循的标准和规范.阅读前我一直以为写的是作者在设计 Erlang/OTP 框架时的一些原则. 闲话少叙.Let's go! 1.概述 OTP设计原则规定了如何使用进程.模块和目录来组织 Erlang 代码. 1.1 监控树 Erlang/OTP的一个基本概念就是监控树.它是…
在本文中 关于现代设计 技术为本 实现以较少投入取得极大成绩 迅速和流畅 真正实现数字化 合作共赢 相关主题 驱动出色设计的基础 我们相信遵循 Microsoft 设计原则可帮助你构建使用户感到愉悦并使你感到自豪的应用商店应用.在规划你的应用时使用这些原则,并且通过它们指导你完成设计和开发选择. 关于现代设计 长期以来,Microsoft 在许多领域都是技术领先者,并且提供各种产品.最近开始发生的一种变化是,我们越来越关注设计.此更改的特点是强大的基础.令人兴奋且具有影响力的创意.美观的浏览以及…
一 电源线布置: 1.电源线.地线的走向应与资料的传递方向一致. 二 地线布置: 1.数字地与模拟地分开. 2.接地线应尽量加粗,致少能通过3倍于印制板上的允许电流,一般应达2~3mm. 3.接地线应尽量构成死循环回路,这样可以减少地线电位差. 三 去耦电容配置: 1.印制板电源输入端跨接10~100μF的电解电容,若能大于100μF则更好. 2.每个集成芯片的Vcc和GND之间跨接一个0.01~0.1μF的陶瓷电容.如空间不允许,可为每4~10个芯片配置一个1~10μF的钽电容. 3.对抗噪能…
一. 1.面向对象思想的核心: 封装.继承.多态.   2.面向对象编程的追求: 高内聚低耦合的解决方案: 代码的模块化设计: 3.什么是设计模式: 针对反复出现的问题的经典解决方案,是对特定条件下(上下文)问题的设计方案的经验总结,是前人设计实践经验的精华. 4.面向对象设计原则 是面向对象设计思想(法理精神)的提炼(基本宪法),比面向对象思想的核心要素更具有实操性,比设计模式(各种具体法律条文)更抽象. 5.如何最大限度降低耦合度? 少用类的继承,多用接口隐藏实现细节. 避免使用全局变量.…
最近通读了<架构整洁之道>,受益匪浅,遂摘选出设计原则部分,与大家分享,希望大家能从中获益. 以下为书中第3部分 设计原则的原文. 设计原则概述 通常来说,要想构建-个好的软件系统,应该从写整洁的代码开始做起.毕竟,如果建筑所使用的砖头质量不佳,那么架构所能起到的作用也会很有限.反之亦然,如果建筑的架构设计不佳,那么其所用的砖头质量再好也没有用.这就是SOLID设计原则所要解决的问题. SOLID原则的主要作用就是告诉我们如何将数据和函数组织成为类,以及如何将这些类链接起来成为程序.请注意,这…
1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准.2003年6月UML2.0获得正式通过. 1.2 UML特性 U(Unified):统一,UML融合了多种优秀的面向对象建模方法以及多种得到认可的软件工程方法,消除了因方法林立且相互独立而带来的种种不便,集众家之长,股名"统一".通过统一的表示方法可以让不同知识背景的领域专家,系统分析设计人员以及开发…
1 设计原则概述 <UNIX/LINUX设计哲学>设计准则 ① 小既是美. ② 每个程序只做一件事情. ③ 快速建立原型. ④ 舍弃高效率而取可移植性. ⑤ 避免强制性的图形化界面交互. ⑥ 让每个程序都成为过滤器. ⑦ 寻求90%的解决方案. 注释:花20%的成本解决80%的需求. 五大设计原则(SOLID) ① S - 单一职责原则 ② O - 开放封闭原则 ③ L - 李氏置换原则 ④ I - 接口独立原则 ⑤ D - 依赖倒置原则 单一职责原则 一个程序只做好一件事情. 开放封闭原则…
1.UML统一建模语言 定义:用于软件系统设计与分析的语言工具 目的:帮助开发人员更好的梳理逻辑.思路 学习地址:UML概述_w3cschool 官网:https://www.omg.org/spec/UML 1.1.UML组成结构 flowchart TD; UML图 --> 结构图 & 行为图; 结构图 --> 剖面图 & 包图 & 复合结构 & 对象图 & 类图 & 组件图 & 部署图 行为图 --> 交互图 & 活动…
前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到详尽充实,如果有好的建议或者不对的地方,还望不吝赐教斧正. 一.接口的流畅性 好的接口是流畅易懂的,他主要体现如下几个方面: 1.简单 操作某个元素的css属性,下面是原生的方法: document.querySelector('#id').style.color = 'red'; 封装之后 fun…
面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator.Observer这样的设计模式,而不重视面向对象的分析和设计.甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程. 众所周知,Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计.查看Ap…