面向对象
loseone
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
面向对象的两个方向性思维
面向对象的两个方向性思维底层思维:向下,如何深入把握机器底层,从微观理解对象构造——底层思维• 语言构造• 编译转换• 对象内存模型• 运行时机制• …… 抽象思维:向上,如何将我们的周围世界抽象为程序代码——抽象思维• 面向对象• 组件封装• 设计模式• 架构模式...原创 2009-07-30 20:52:18 · 180 阅读 · 0 评论 -
重新认识面向对象
重新认识面向对象 隔离变化:从宏观层面来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小 各司其职 从微观层面来看,面向对象的方式更强调各个类的“责任”,新增员工类型不会影响原来员工类型的实现代码——这更符合真实的世界,也更能控制变化所影响的范围 对象是什么? 从概念层面讲,对象是某种拥有责任的抽象。 从规格层面讲,对象是一系列可被使用的公共接口。 从语言实现层面来看,对象封...原创 2009-07-30 21:25:05 · 121 阅读 · 0 评论 -
面向对象设计准则
面向对象设计准则 针对接口编程,而不是针对实现编程,客户无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口。 优先使用对象组合,而不是类继承,类继承通常为“白箱复用”,对象组合通常为“黑箱复用”。继承在某种程度上破坏了封装性,子类父类耦合度高;而对象组合则只要求被组合的对象具有良好定义的接口,耦合度低。 封装变化点:使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,...原创 2009-07-30 21:23:19 · 202 阅读 · 0 评论 -
面向对象与设计模式
面向对象与设计模式面向对象设计模式解决的是“类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式几个方面。面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是那些可以满足“应对变化,提高复用”的设计。面向对象设计模式不像算法技巧,可以照搬照用,它是建立在对“面向对象”纯熟、深入的理解的基础上的经验性认识。掌握面向对象设计模式的前提是首先掌握“面向对象”! 恰当...原创 2009-07-30 21:11:38 · 172 阅读 · 0 评论 -
面向对象设计原则
面向对象设计原则依赖倒置原则(DIP)高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象。抽象( 稳定) 不应该依赖于实现细节( 变化),实现细节应该依赖抽象于。开放封闭原则(OCP)类模块应该是可扩展的,但是不可修改;对扩展开放,对更改封闭单一职责原则(SRP)一个类应该仅有一个引起它变化的原因。Liskov 替换原则(LSP)子类必须能够替换它们的基类接口隔离原则(ISP)...原创 2009-07-30 21:04:17 · 120 阅读 · 0 评论 -
软件设计复杂的根本原因
软件设计复杂的根本原因客户需求的变化软件设计复杂性的根本原因在于:变化 技术平台的变化 开发团队的变化 市场环境的变化 ……原创 2009-07-30 21:01:32 · 252 阅读 · 0 评论 -
复杂性的几个诱因
问题领域的复杂性客户需求本身就很复杂,客户与开发人员互相不理解管理开发过程的困难开发是由人完成的,人的组织、潜能存在巨大复杂性软件可能的灵活性软件为开发人员提供了极大的灵活性,而开发人员也很容易滥用这种灵活性表征离散系统行为的困难 软件系统本质上是一个离散系统,其复杂度要远远大于连续系统。一个简单的外部事件可能破坏整个系统...原创 2009-07-30 20:57:45 · 149 阅读 · 0 评论 -
软件设计固有的复杂性
建筑商从来不会去想给一栋已建好的100层高的楼房底下再新修一个小地下室——这样做花费极大而且注定要失败。然而令人惊奇的是,软件系统的用户在要求作出类似改变时却不会仔细考虑,而且他们认为这只是需要简单编程的事。——Object-Oriented Analysisand Design with Applications Grady Booch...原创 2009-07-30 20:55:54 · 284 阅读 · 0 评论 -
深入理解面向对象
深入理解面向对象 向下:深入理解三大面向对象机制 封装,隐藏内部实现 继承,复用现有代码 多态,改写对象行为 向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”...原创 2009-07-30 20:54:14 · 167 阅读 · 0 评论 -
调整软件模块间耦合关系
调整软件模块间耦合关系:耦合关系直接决定着软件面对变化时的行为 – 模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改 – 模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变...原创 2009-07-30 21:26:45 · 278 阅读 · 0 评论
分享