论面向对象方法中的对象、职责、协作

原创 2006年06月05日 16:15:00

面向对象方法的主要任务就是处理对象、职责、协作三者的各种关系,使构造出的系统能解决特定的问题。对象是完成任务的载体,系统的要完成的任务都是分配给一个或多个对象来承载,也就是对象的职责。当一个任务由多个对象来完成时,对象间必须要进行分工协作,以实现对象内的紧耦合和对象间的松耦合,保证系统的可扩展能力。

使用面向对象方法时,首要任务是找出系统中和要解决的问题相关的对象,为每个对象分配职责。当一个任务不能由一个对象来完成时,需要找出或添加其他对象来和这个对象协作来完成任务。此外,对系统中的公共任务,可以将这些任务分配给专门的公共对象来完成。其他的对象需要使用这些公共任务任务时,只要使用公共对象即可。

对象的发现并非单向过程,而是在职责分配和协作关系定义中需要循环往复。增加的对象和协作关系可能对已有的结构造成变更或需要优化,这个过程就是目前所说的重构。重构在整个开发过程中起到不断的改进和精炼的作用,使构造的系统能更符合业务需求。

对象内部的职责和对象间的协作关系的不同组合可用于解决各种不同的问题,对于一些特定的问题,可以采用固定的一些组合方式去解决,这种组合方式就是常说的设计模式。仔细研究一下GoF设计模式的内容,都是对象以及对象间以某种特定方式组合起来解决一个特定的问题。因此,如果要想发现或提出新的设计模式,就需要对对象以及对象间的协作进行研究和分析,针对特地的问题抽象出特定的关系。

对象职责的分配取决于对象在系统中的作用以及其他对象的作用,对于可以由一个对象完成的任务,就不要分配给多个对象;如果任务大到需要多个对象来完成,职责的分配要体现对象内部的紧耦合和对象间的松耦合。


对象间的协作关系包括引用和继承。引用通常都通过针对接口引用来实现对象间的松耦合,当接口不变时,对象内部实现的修改不会对引用它的对象造成任何影响,增强了系统的可扩展性。


继承相对引用是一种紧耦合关系,子对象和父对象都是属于同一种类型,子对象可以覆盖父对象中可访问的方法,当父类增加虚方法时,所有继承的子类必须增加对虚方法的实现。另外,由于java,c#不支持多继承,因此当一个任务需要不同类型的对象来完成时,通过单一继承比较难实现。

对象、职责、协作在面向对象方法中相互关联,共同构成面向对象方法的核心内容。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

面向对象原则--单一职责原则

单一职责原则(SRP:Single responsibility principle)又称单一功能原则,它规定一个类应该只有一个发生变化的原因。该原则由罗伯特·C·马丁(Robert C. Marti...

面向对象设计原则——单一职责原则

单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。 定义:单一职责原则(Single Responsibility Principle,SRP),一个类只负责一个功能领域中的相应职责,或...

面向对象的六大设计原则 (一):单一职责

学习自《Android源码设计模式解析与实战》 一、单一职责:Single Responsibility Principle,简称SRP          定义:就一个类而言,应该只专注于做一件事...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)