`
mjgforever
  • 浏览: 5664 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Introduction to Objects

阅读更多

Smalltalk 的五个基本特征:
  任何事物都是对象;
  程序是对象的集合,对象之间通过消息来通讯;
  每个对象都有自己的内存;
  每个对象都有类型;
  特定类型的所有对象都可以接受相同的消息;
Booch 的表述:对象有状态、行为和身份。

对象包含接口 An object has an interface
  在面向对象的编程中,创建类是最基础的概念。
  面向对象编程的一大挑战是创建问题空间中的元素和解决方案空间中的对象之间的映射关系。
  接口决定你对特定对象所能发出的请求。

对象提供服务 An object provides services
  当我们开发或理解程序设计时,最好的方法是考虑对象作为“服务提供者”。
  高内聚是高质量软件设计的基础。

隐藏执行 The hidden implementation
  在任何关系中,涉及各方之间的界限是非常重要的。
  访问控制的原因是保持客户端开发人员只接触到可以接触的,另外组件库的设计者也可以改变类内部的工作方式而无需担心改动会影响客户端开发人员。

重用执行 Reusing the implementation
  聚合是一种特别类型的关联,用于描述“总体到局部”的关系。
  基本聚合:部分类的生命周期独立于整体类的生命周期。
  组合聚合:部分类的生命周期并不独立于整体类的生命周期(公司部门)。

继承 Inheritance
 
Is-a 和 is-like-a 的关系
  纯替换也称为Is-a关系,例如A circle is a shape。
  子类除继承父类外,也增加了自己的新方法,例如The heat pump is-like-an air conditioner。
  当我们了解置换原则substitution principle的时候,我们知道纯继承是非常好的方式,但给子类增加自己的方法也是非常重要的。当我们设计的时候,要综合考虑这些方面。

利用多态实现可互换的对象 Interchangeable objects with polymorphism
  后期绑定:C++使用virtual关键字,而java对动态绑定进行默认支持。

单继承 The singly rooted hierarchy
  有利于垃圾回收;
  有利于保证类的特定功能;

容器 Containers
  C++ 中有标准C++ 库,Java中也有List, Maps, Sets等。
  容器提供了不同的接口和外部行为;
  不同的容器有不同的效率;

泛型 Parameterized types (generics)
  保证 Downcast 开销和安全,采用泛型来规定其类型。
  ArrayList<Shape> shapes = new ArrayList<Shape>();

对象创建和生命期 Object creation & lifetime
  Java 使用动态内存分配
  垃圾回收器,garbage collector

异常句柄:处理错误 Exception handling: dealing with errors
  异常处理不是面向对象的特色,它比 object-oriented languages 出现的更早。

并发设计 Concurrent programming
 
Java 和 Internet

总结:oop 使我们对问题的描述更加直观。oop and java may not be for everyone.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics