oo面向对象原则】的更多相关文章

1.单一职责原则 一个类,最好只做一件事,只有一个引起他变化的原因否则就应该考虑重构. 2.开放封闭原则 软件实体应该是可扩展的,而不是可修改的.也就是说对扩展开放,对修改封闭.主要体现在两个方面: 对扩展开放,意味着有新的需求或变化时,可以对现有的代码进行扩展,以适应新的情况. 对修改封闭,意味着类一单设计完成,就可以独立完成其工作,而不是对类进行任何修改. 封装变化,是实现开放封闭原则的重要手段,对经常发生变化的状态一般将其封装为一个抽象,但是拒绝滥用抽象,只将经常变化的部分进行抽象. 3.…
1  概述 本章叙述面向向对象设计的七大原则,七大原则分为:单一职责原则.开闭原则.里氏替换原则.依赖倒置原则.接口隔离原则.合成/聚合复用原则.迪米特法则. 2  七大OO面向对象设计 2.1 单一职责原则SRP(Simple Responsibility Principle) 单一职责原则,就是一个设计元素只做一件事.什么是“只做一件事”?就是少管闲事.现实中也是如此,如果让一个人认真的去做一件事,那么任何人都有信心可以做到很出色.就一个类而言,应该仅有一个引起它变化的原因,如果你能想到两个…
Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结 1. Sql语言应该得到更大的范围的应用,1 1.1. 在小型系统项目中,很适合存储过程写业务逻辑2 1.2. 大型项目或产品型项目(有换数据库需求的),大规模使用js编写业务逻辑,把后端大力简化为一个rest接口的数据库驱动2 1.3. 小部分模块,重视安全的,使用后端业务逻辑模式2 1.4. 貌似比较理想的模式 前端h5(ui界面)+js(业务逻辑)+rest(通讯层)+ sql(业务逻辑)+数据库(存储)2…
昨天忙了一天,晚上加班到了12点,虽然工作有时候比较累,但是整体来讲还是比较轻松的,国企加上我是今年才毕业的应届生,导致了现在这种情况.工资也真的不算高...但我觉得最开始还是要踏踏实实一点比较好.学习才是王道嘛,技术好了,功底扎实了,工资自然应该不是问题.今天看的是第二章,OO大原则,这一章可能主要涉及到一些设计模式的基本原则和设计模式,因为这毕竟是软件开发人员的必修课,是成为一个好的软件开发人员的开始,之前完完整整的看了一遍<大话设计模式>,确实写的不错,如果没看过设计模式的可以拿他作为起…
这部分增加一点自己的感想,OO设计原则下面讲述的很清晰;看完之后有点感想如果我们在实际开发当中能够把这些原则熟烂于心的话那我们的代码质量和个人能力会有很显著的提神.根据自己的实际经验看很多开发者在开发过程中很多基本的知识确实没有熟烂于心导致开发的时候只有基本的内容.我所在的项目就是代码接口各种乱,可读性和可维护性特别差:当然自己在开发的时候也都没有做到,在后面的工作中尽量避免 前面发表了5篇OO设计原则的文章,在这里我将这个5个原则如何在我们设计过程进行应用进行一下总结, 这是我通过阅读和学习很…
只有到了一定层次后才会真正的深入体会到面向对象的一些知识点啊! 不谈具体程序,谈的是你对软件的理解 模式: 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心. “模式”这个词是不局限于软件开发行业的,它几乎无处不在,它其实就是一种经验的积累,就象大多数人的教育经历都是从小学到初中再到高中再到大学,这也是一种模式,是中国的教育模式:现在越来越火的出国热,也是另一种模式,海外留学模式 比设计模式更重要:GRASP (职责分配原则) GRASP(General Respon…
Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js 1.1. 封装性是面象对象编程中的三大特性之一  三个基本的特性:封装.继承与多态1 1.2. 魔术方法 预定义方法2 1.3. 魔术常量(Magic constants) 预定义变量2 1.4. 适用领域 js php java c#2 1.5. 构造函数 __construct( ) vs xxxCls()3 1.6. 析构函数名称必须是__destruct( )  finally()3 1…
OO面向对象第一单元总结(表达式求导) 写在前面: 魔鬼课程oo第一单元终于结束,当终究要落笔总结,竟不知从何写起…… 回首再去看第一次的作业,你会满足于那时的幸福,或许,这就是成长吧! 千言万语,一切尽在无言中…… 知识点总结: 对象,类 面向对象的编程思想 封装.继承.多态.抽象 接口 重写 …… 作业代码思路: 本单元的三次作业是一个层层深入的关系,我认为,虽然“推倒重来”式写法十分不可取,但对于一个刚刚接触面向对象思想的新手来说,也可能是不可少的一个环节,我们能从自己推倒重来的过程中,逐…
常用的OO设计原则: 1 封装变化:找出应用中可能需要变化之处,把它们独立出来,不要和哪些不需要变化的代码混在一起. 2 针对接口编程,而不是针对实现编程. 3 多用组合,少用继承. 4 松耦合:为了交互对象之间的松耦合设计而努力. 5 开放-关闭原则:类应该对扩展开放,对修改关闭. 6 依赖倒置:要依赖抽象,不要依赖具体类. 7 最少知识:只和你的亲密朋友交谈. 8 好莱坞原则:别调用(打电话给)我们,我们会调用(打电话给)你 9 单一责任:一个类应该只有一个引起变化的原因.…
oo面向对象--规格化设计 规格化设计与抽象 要了解规格化设计首先要了解抽象化的程序设计,两者是密不可分的. 抽象化(Abstraction) 抽象化是将数据与程序,用语义呈现他们的外观,但是隐藏起它的实现细节. 抽象的过程可以看做多对一的映射,让我们忽略个体信息,将不同事物当做相同的事物对待,能够减少程序的复杂度,使得程序员可以专注在处理少数重要的部分. 发展 近几年来,程序员对已经产生的抽象水平产生不满,甚至不满足于在高级语言程序中普遍实现的抽象水平,解决这个问题的方法在于创造"更高级的语言…
不知不觉中,我已经接触OO五周了,顺利地完成了第一章节的学习,回顾三次编程作业,惊喜于自身在设计思路和编程习惯已有了一定的改变,下面我将从度量分析.自身Bug.互测和设计模式四个方向对自己第一章的学习做一个总结.本人OO萌新,且这篇文章更多面向我自己,无法面面俱到,因此若对文章内容有疑惑和建议,欢迎各位大佬在评论区批评指正~ 程序度量分析 本章求导作业共有三次,通过从不同度量指标纵向对比三次作业,我发现自己的代码结构已经逐渐有了变化,下面我将从类结构图.代码复杂度和类依赖三个指标对三次作业进行分…
此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.单一职责原则 (1)核心思想:一个类最好只做一件事,只有一个引起它变化的原因 (2)常用模式:Facade模式.Proxy模式 (3)基本方法:Extract Interface 抽取接口.Extract Class 抽取类.Extract Method 抽取方法 (4)DEMO:数据库管理系统中根据不同权限进行CRUD操作(这里是使用Proxy模式重构后的代码) public interface IDB…
  Prototype(原型模式) 20.1.解释 概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. main(),客户 ICloneableNow,只有一个接口Clone CMail,实体类 CAdvTemplate, 说明:通过克隆的方式很快速的得到一个新的对象,然后稍微修改就是一个全新的对象了,节省了重新创建对象对资源的大量占用. Mediator(中介者模式) 21.1.解释 概念:用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦…
面向对象的三大特性 一.面向对象特性——封装: 概念:把对象所能操作的信息进行封装: 封装作用: 1.减少代码之间的耦合: 2.提供统一的访问接口,内部修改不影响外部的调用:(开放封闭原则) 二.面向对象特性——继承: 概念:类与类之间的关系,子类继承父类,也就继承了父类除构造函数和析构函数之外的所有成员: 构造函数是否可以被继承: 1.当写好一个类以后,默认会存在一个没有参数的构造函数(即便我们不写构造函数,也会存在这么一个无参的构造函数)2. 当手动添加一个构造函数以后,会将默认的无参数的构…
开闭原则(OCP) 里氏代换原则(LSP) 依赖倒转原则(DIP) 接口隔离原则(ISP) 合成/聚合利用原则(CARP) 迪米特法则(LOD)…
作业一.多项式的加减运算 1.设计要点与自我分析 我设计的类图 老师建议类图 我设计了两个类来进行多项式的计算,类Polynomial进行多项式的存储和输入输出,第二个类进行多项式加减运算.而加减运算的类里面只有方法,而且都是静态方法,没有存储变量,感觉这个设计还是有些问题.之后我也参考了一下别人的代码. 多项式的存储: 我用的是一维数组来存储多项式,下标代表的是多项式的次数,数组存储的是多项式的系数,这种存储方法对于多项式加减法的操作很方便,但是浪费的空间大,因为很多系数是0:而且存储多项式加…
测试与正确性论证的效果差差异 测试和正确性论证都是对程序进行可靠性的验证. 测试: IEEE提出了对软件测试的定义:使用人工或者自动的手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或者弄清预期结果和实际结果之间的差别.它是从对程序的实际操作来对运行结果和期望的结果进行比对,实质上只是一种抽样检查,只是一种查错的手段,它可以帮助人们去发现程序中的错误,但不能证明程序中没有错误,即:测试不能证明程序是正确的.测试又分为黑盒测试和白盒测试: 黑盒测试把测试对象看做一个黑盒子,测试人…
面向对象的概念 一.什么是面向对象? 传统的:世间万物都是对象.例如:桌子,凳子,电脑等: 个人理解: 1.软件开发方法: 2.面向对象是一种解决问题和分析问题的(编程)一种思想: 3.他是通过面向过程发展而来的,为了提高程序的扩展性,重用性,面向对象从此就诞生了: 4.c#类的实例也叫做对象,把很多功能封装成一个对象: 5.面向对象这个对象,指的是客体.所谓客体是指客观存在的对象实体和主观抽象的概念. 6.面向对象的三大特性:封装.继承.多态:…
1.单一职责原则 应该有且仅有一个原因引起类的改变 2.里氏替换原则 所有引用基类的地方必须能够透明的使用其子类的对象 3.依赖倒置原则 高层模块不应该依赖底层模块,两者都应该依赖抽象:抽象不应该依赖细节:细节应该依赖抽象 4.接口隔离原则 类间依赖应该建立在接口上:建立单一接口,不要建立庞大臃肿的接口:接口应该尽量细化 5.开闭原则 软件应该对扩展开放,对修改关闭:应该通过扩展来实现改变,不应该通过修改已有代码来实现改变 http://blog.csdn.net/yang382197207/a…
组合 > 继承 Go中的设计,以为继承的被诟病,所以Golang的设计团队在语言的设计时并没有采用经典的OO模式 那Golang中各个部分是怎么联系到一起的呢 type ReadWriter interface { Reader Writer } 通过在interface中嵌入interface type, 实现接口行为的聚合,组成大接口,这种方式在标准库中尤为常见,并且成为Go语言中的管用写法…
面向对象第三次作业总结 一.JML基础梳理及工具链 注释结构 行注释://@annotation 块注释:/*@ annotation @*/ 两种注释都是放在被注释部分上面. 常见表达式 原子表达式 \result表达式:表示一个方法执行所获得的结果,即方法执行后的返回值.这里此表达式的类型根据被注释的函数的返回值而定. \old(expr)表达式:用来表示一个表达式expr在相应方法执行前的取值.当expr有被修改时,使用此表达式,表示expr被修改之前的值.这里有一点需要注意,对于一个引用…
第五次作业:多线程电梯调度 设计策略 ​ 在本次电梯作业当中,我构造了一个电梯请求队列线程,一个调度器线程,三个电梯线程,一个文件输出线程,还有主线程. ​ 调度器扫描用户的请求队列,将每个队列分配给符合要求的电梯,每个电梯有自己的请求队列,电梯根据自己的请求队列来改变自身状态. ​ 同步控制主要包含两个点:用户请求队列会被调度器和请求队列输入线程操作,需要进行同步控制,电梯内部的运行队列也会被电梯本身和调度器操作,也需要进行同步控制. ​ 同步控制上,我用了synchronized关键词和wa…
OO与设计模式的原则.目标(转) 前两天,和一朋友聊到OO设计原则时,对设计模式有了更深的了解,在这里总结一下,与大家分享.OO(Object–Oriented )面向对象   OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学.对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具…
LSP是唯一一个以人名命名的设计原则,并且作者还是一个"女博士"  ============================================================= LSP,Liskov substitution principle,中文翻译为"里氏替换原则". 这是面向对象原则中唯一一个以人名命名的原则,尽管Liskov在中国的知名度没有UNIX的几位巨匠(Kenneth Thompson.Dennis Ritchie).GOF四人帮那么…
面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP 一.OO - Object-Oriented(面向对象) 对象代表真实或抽象的事物,有一个名字(唯一标识),有明确的职责(well-defined responsibilities),展示良好的行为(well-defined behavior),接口清晰,并且尽可能简单.自相容,内聚,完备(self-consistent,coherent,and complete). 基于对象概念,以对象为中心,以类和继…
文章转载自:http://blog.csdn.net/anders_zhuo/article/details/8949566 设计模式遵循的一般原则: 1.开-闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开发,对修改关闭.说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源代码的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展.这是面向对象设计(OOD)的基石,也是最重要的原则. 2…
本文首发于vivo互联网技术微信公众号 https://mp.weixin.qq.com/s/Q_pziBUhKRywafKeY2T7YQ 作者:Robert C. Martin 翻译:张硕 本文由来自美国业界大牛——Robert C. Martin(俗称“Bob大叔) 发布在 butunclebob.com 上,已获得翻译授权. 英文原文链接:http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod 本篇概括性的介绍了OOD的设计原则,后…
一:设计模式简介 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心. ---- Christopher Alexander 软件设计领域设计模式: 设计模式描述了软件设计过程中某一类常见问题的解决方案. 面向对象的设计模式: 面向对象的设计模式描述了面向对象设计过程中,特定场景下,类与相互通信的对象之间常见的组织关系. 二: GOF 23种设计模式 历史性著作 <设计模式 : 可复用面向对象软件的基础>一书中描述了23种经典面向对象设计模式,创立了模式在软件设计中的…
系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式——建造者模式 [Head First设计模式]饺子馆(冬至)中的设计模式——工厂模式 [Head First设计模式]一个人的平安夜——单例模式 [Head First设计模式]抢票中的设计模式——代理模式 引言 今天突然跟朋友谈起设计原则,心里想想面向对象的设计原则与要素都有哪些?掰掰指头算算能说…
转载自:码农社区,http://w3croom.com/read.php?tid-4522.html 今天我给大家带来的是面向对象设计SOLID五大原则的经典解说.       我们知道,面向对象对于设计出高扩展性.高复用性.高可维护性的软件起到很大的作用.我们常说的SOLID五大设计原则指的就是:       S = 单一职责原则 Single Responsibility Principle   O = 开放闭合原则 Opened Closed Principle    L = Liscov…