对一个问题的持续深追,又想起了Java中接口编程这个话题,这里先写下来. (深追问题的描述详见:Hibernate(十五):用Hibernate求记录总数的一个怪胎
,Hibernate(十六): DetachedCriteria子查询与ALIAS_TO_ENTITY
,Hibernate(十七): Criteria子查询与ENTITY_MAP时的问题(续一)
)
1, 初次接触这一概念是很摸不着头脑:Collection和Map,又跟泛型混在一起,
2, 接口的好处: 为设计师而生的, 设计时不必关心实现地用接口来搭架子. 这方面例子:JDBC, JSF. Servlet
3, 正如它的名字所示, 接口就是为调用设计的, 从一个侧面也反映出Java对软件工作的支持.
4, 可以有多种实现, 像dbcp. 而在调用层面上与实现解耦合.
5, 不用地想到了Java祖先C++里的多重继承: 继承更多地是为了代码重用,但同时也肩负着调用与实现解耦合的责任. 这样就跟软件工程里"问题由专人负责"的philosophy相冲突,于是Java在继承的基础上进上步抽象,提取出接口的概念.
6,现在像Groovy这样的动态语言没接口这一概念了,而是采用Duck Typing的策略, 好处: 任何类都可以当接口来调用, 但也有些混乱,总是不如对接口做类型检查那样清晰.
以上列举了些现在能想到的与接口编程相关的话题. 应该说这些概念之间是有相互交叉的, 不过先贴在这里,一是希望抛砖引玉地引起大家讨论,二是作为自己对接口编程思考的0.1版本,日后随着认识的深入及相关概念的逐步清晰再归纳总结出0.2版本来.
分享到:
相关推荐
面向接口编程是软件设计中的一个重要概念,尤其是在Java和Android开发中。...在提供的"test2"文件中,可能包含了演示面向接口编程的示例代码,通过学习和分析这些代码,可以进一步加深对这一概念的理解。
通过学习“软件接口的哲学思考”,我们可以提升对接口设计理念的理解,从而更好地构建可维护、可扩展的系统。在“0-软件接口的哲学思考.ppt”这个文件中,可能会详细讲解这些概念,并提供实际案例来加深理解。接口...
本实验旨在通过实际操作加深学生对面向对象编程中两个重要概念——**面向抽象编程**和**面向接口编程**的理解与掌握。具体目标包括: 1. **掌握继承的使用**:学会如何在Java中使用继承创建类之间的层次结构,以及...
引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 ...1.2 对象的接口 ...1.5 继承:重新使用接口 ...附录E 关于垃圾收集的一些话 附录F 推荐读物
以上是Java面向对象编程的一些基本概念,通过解决孙卫琴女士教程中的课后思考题,学习者可以更好地理解和应用这些知识。解答集"answer"应详细阐述了这些问题的解题思路和实现方法,对于深入学习和复习Java面向对象...
在编程领域,架构思考是构建高效、稳定和可扩展系统的关键。姚钢强在其讲座“编程语言中的架构思考”中,分享了他在不同项目中积累的经验,特别是在优化系统性能、提高稳定性以及资源利用效率方面的实践。 首先,姚...
这些知识点是《Java面向对象编程》一书的核心内容,通过阅读书中的思考题及答案,可以帮助读者巩固理论知识,提升实际编程能力。对于初学者来说,理解并熟练运用这些概念是掌握Java编程的关键步骤。
详细论述了DSP与多种外围接口电路的设计方法,包括各种存储器、模数和数模转换电路、异步串行接口、地址/数据复用总线、扩展I/O、CPCI总线,以及相关的软件编程和调试方法,还介绍了高速数字电路、数模混合电路的...
通过实验,学生能够深入理解和掌握使用Socket接口开发面向连接(TCP)和无连接(UDP)的网络应用程序的方法,同时增强对TCP/IP协议的理解,以及熟悉VC++编程环境。 实验目标主要包括三个方面: 1. 熟悉Socket编程...
帕纳斯的观点促进了对模块化设计的深入思考,他提出的模块定义强调了模块间的接口和依赖关系,使得程序员可以专注于单个模块的实现,而不是整个系统的复杂交互。这种"局部推理"的概念极大地简化了大型软件的开发,...
### Java抽象类与接口的深入思考 在Java编程语言中,抽象类(abstract class)与接口(interface)是实现多态性以及代码复用的重要工具。本文将通过具体实例来探讨这两种概念的区别及其应用场景,帮助读者更好地...
以上内容是“Linux C编程一些东西”涵盖的主要知识点,这些知识不仅适用于本科三年级学生的学习,也对从事Linux系统开发、嵌入式工程或其他相关领域的工作具有很高的实用价值。通过扎实的理论学习和实践操作,可以...
1. **個人學習文檔積累.7z**:这个文件可能包含了学习过程中的笔记、教程、项目案例等,记录了个人对C++高级编程的理解和实践,是持续学习和积累的重要资源。 2. **Socket通訊的基礎理解與思考.7z**:Socket编程是...
### C#编程多年的学习思考 #### 一、C#语法结构体系 C#是一种现代的、面向对象的编程语言,其语法结构体系主要包括以下几个方面: 1. **程序集(Assembly)**:C#应用程序是由一个或多个程序集组成的。程序集是C#...
4. **对接口编程才是真正的编程** 接口定义了对象的行为,而不是实现细节。通过接口编程可以实现松耦合,使得代码更易于维护和扩展。此外,接口也是实现多态性的关键。 5. **对数据的描述才是数据** 数据结构的选择...
8255可编程并行通信接口实验就是一个经典的案例,它不仅加深了学生对8255芯片功能的理解,还锻炼了他们通过编程控制硬件的能力。通过本实验,学生将能够实际操作,通过编写汇编语言程序来模拟十字路口的交通灯管理...
以上内容仅是根据给出的部分文字进行的推断,具体的思考题和详细解答会更深入地探讨这些知识点。学习《微机原理与接口技术》对于理解计算机系统的底层运作至关重要,能够帮助学生更好地进行软件开发和硬件设计。
3. **GPIO的配置与控制**:深入研究ARM9处理器的GPIO寄存器及其控制机制,理解如何通过软件编程实现对硬件的精确控制。 4. **步进电机的应用场景**:结合实际应用案例,讨论步进电机在自动化控制、精密机械等领域的...
【微机原理与接口课程教学思考】 在当前的教育环境中,对应用型本科院校的人才培养提出了更高的要求,特别是对于电子信息、电气、机械等专业的学生,掌握“微机原理与接口”这门课程显得尤为重要。这门课程是学生...
《像程序员一样思考》这本书是为那些希望提升编程思维、理解和解决问题能力的读者而准备的。它深入浅出地介绍了如何运用程序员的思维方式来解决日常生活和工作中遇到的问题,旨在培养逻辑思维、分析能力和抽象思维...