`
- 浏览:
333482 次
- 性别:
- 来自:
温州
-
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下, 各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间 的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按 照接口编程了,只不过如果你没有这方面的意识,那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到),表现在某个模 块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等。
Booch先生那天谈到Interaction Designer,它就是指做这类设计的人,只不过层次更高一些。我想目前我们的软件设计队伍中,这类人是最缺乏的人才之一。
非接口编程?是不是就是面向过程的编程思想?
1.关于接口的理解。
接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。
我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。
接口的本身反映了系统设计人员对系统的抽象理解。
接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);
第二类是对一个体某一方面的抽象,即形成一个抽象面(interface);
一个体有可能有多个抽象面。
抽象体与抽象面是有区别的。
2.设计接口的另一个不可忽视的因素是接口所处的环境(context,environment),系统论的观点:环境是系统要素所处的空间与外部影响 因素的总和。任何接口都是在一定的环境中产生的。因此环境的定义及环境的变化对接口的影响是不容忽视的,脱离原先的环境,所有的接口将失去原有的意义。
3.按照组件的开发模型(3C),它们三者相辅相成,各司一面,浑然一体,缺一不可。
面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法
面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现
接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题
我认为:UML里面所说的interface是协议的另一种说法。并不是指com的interface,CORBA的interface,Java的interface,Delphi的interface,人机界面的interface或NIC的interface。
在具体实现中,是可以把UML的interface实现为语言的interface,分布式对象环境的interface或其它什么 interface,但就理解UML的interface而言,指的是系统每部分的实现和实现之间,通过interface所确定的协议来共同工作。
所以我认为,面向interface编程,原意是指面向抽象协议编程,实现者在实现时要严格按协议来办。也就是Bill Joy同志说的,一边翻 rfc,一边写代码的意思。面向对象编程是指面向抽象和具象。抽象和具象是矛盾的统一体,不可能只有抽象没有具象。一般懂得抽象的人都明白这个道理。 但 有的人只知具象却不知抽象为何物。
所以只有interface没有实现,或只有实现而没有interface者是没有用的,反OO的。
所以还是老老实实面向对象编程,面向协议编程,或者什么都不面向,老老实实编程。
但是我很讨厌讨论这样的术语,不如我们谈谈什么叫面向领导的编程?面向用户的编程?领导和用户有时都很BT,我们就面向BT编程?
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在Java编程语言中,"面向接口编程"是一种重要的设计原则,它强调了程序设计应以接口为中心,而非具体的实现类。这种编程范式有助于提高代码的可扩展性、可维护性和松耦合性。让我们通过生活中的实例和给定的类文件来...
在Java编程语言中,继承与面向接口编程是两种核心概念,它们构成了面向对象编程(OOP)的基础。然而,在实际开发过程中,过度依赖继承或不恰当地使用接口可能会导致代码结构复杂、维护困难等问题。本文将深入探讨...
"Java面向对象编程.pdf 高清PDF下载.txt"这个文件可能是提供下载链接或指南的文本文件,它可以帮助用户找到并下载"Java面向对象编程.pdf"这份高清PDF教程,从而深入学习和理解Java的面向对象编程概念和技术。...
《Java语言与面向对象程序设计题解及实验指导》是一本深入浅出的教程,旨在帮助读者掌握Java编程语言的核心概念以及面向对象编程的基本原则。本教程覆盖了从基础语法到高级特性的全面内容,通过丰富的题解和实验指导...
Java语言是支持面向对象编程的典型代表之一,它的核心概念包括类、对象、继承、多态和封装。 2. 孙卫琴老师及其书籍:孙卫琴是编写Java相关教材的作者,她出版的书籍以易懂的叙述方式帮助读者理解和掌握Java编程...
在Java语言中,面向对象编程是其核心特性之一。 本资源是针对"ACCP5.0 S2"阶段的Java OOP上机贯穿案例,旨在帮助学习者深入理解和应用面向对象编程。"ACCP5.0 S2"可能是一个计算机编程课程或培训计划的一部分,其中...
1. **面向对象**:Java基于面向对象编程(OOP)原则,支持类、接口、封装、继承和多态等概念,使得代码结构清晰,易于维护。 2. **简单性**:Java简化了C++的一些复杂特性,例如去除了指针操作,避免了内存管理中的...
《面向对象程序设计——Java语言》是一门深入探讨如何使用Java进行面向对象编程的课程,由知名讲师程细柱制作的PPT电子课件。面向对象编程(Object-Oriented Programming,简称OOP)是现代软件开发中的核心编程范式...
面向对象编程是软件开发中的核心概念,特别是在Java语言中,这一特性被广泛使用并强调。《JAVA面向对象编程》一书由孙卫琴撰写,它深入浅出地讲解了Java中面向对象的思想和实践,是Java爱好者提升技能的宝贵资源。...
《Java语言程序设计(基础篇+进阶篇)第六版》是Java学习的重要参考资料,尤其对于初学者和希望深入理解Java编程概念的人来说,这是一本不可多得的教材。本书分为基础篇和进阶篇,涵盖了Java编程的各个方面,旨在帮助...
Java是一种广泛使用的高级编程语言,以其面向对象特性而闻名。面向对象编程(Object-Oriented Programming,OOP)是Java的核心,它将现实世界中的概念映射到代码中,使得程序设计更加直观、可维护和可扩展。在这个...
3. **面向对象编程**:Java是纯面向对象的语言,这意味着所有代码都封装在类中。你需要理解类、对象、继承、封装和多态等概念。类是创建对象的蓝图,对象是类的实例。继承允许子类继承父类的属性和方法,封装保护...
《Java语言面向对象程序设计实验指导与习题答案》是由范玫和马俊共同编著的一本面向初学者和进阶者的Java编程书籍。这本书旨在帮助读者深入理解Java语言的面向对象特性,并通过一系列的实验指导和习题解答,提升实践...
Java面向对象编程是Java语言的核心特性之一,它使得程序设计更加灵活、可维护性更强。在本PPT中,我们将深入探讨这一主题,以便你能够更好地理解和应用面向对象的编程理念。 1. 面向对象编程基础 - 类(Class):...
面向对象编程(Object-Oriented Programming,OOP)是JAVA语言的核心特性,也是现代软件开发中的主流编程范式。在JAVA中,面向对象编程主要体现在三个方面:封装、继承和多态。 1. 封装:封装是面向对象编程的基础...
全书内容包括面向对象的编程思想、Java语言的基础知识、异常处理、类与对象的生命周期、多线程、Java集合、输入/输出和GUI编程等。其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机...
本教程对比了两种广泛应用的面向对象语言——C++和Java,帮助读者深入理解两者之间的异同。 C++是Bjarne Stroustrup于1983年创建的,它是C语言的扩展,增加了类、模板、异常处理等面向对象特性。C++强调性能和灵活...
Java语言完全支持面向对象编程,其三大特性——封装、继承和多态,是OOP的核心。 1. 封装:这是面向对象编程的基础,它将数据和操作数据的方法捆绑在一起,形成一个独立的实体,即对象。在Java中,通过访问修饰符...
"Java面向对象精髓编程"这个主题深入探讨了Java的核心特性——面向对象编程。面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中的重要概念,它通过将数据和操作数据的方法封装在对象中,提高了代码...