软件这个行业越来越注重编程的可重用、可扩展、高内聚这几个特性,无非就是为了日后软件可以进一步改善所作的努力,使得日后扩展的时间成本减低,以及难度的减低。既然如此,那有什么办法可以帮助我们在编程的时候把代码写得具有以上所说的特性呢?
这个说法就像是问写作怎样才能写出好文章一样,那么答案也是与之类似的,无非就是见仁见智,不同作家有不同的写作风格,软件工程师也一样,各有各的技巧。
在这里我想与大家分享的是其中一种技巧,就是利用接口合理地将软件分离出不同的功能模块,以达到代码具有这些好特性的目的。接口,按照最基本的定义就是:在面向过程中接口是一大堆功能独立的函数的集合,在面向对象中就是一大堆可被其他类调用的方法的集合。简单地说,接口就是用来统一不同模块中调用时的方法名称,并以此来达到不同模块的开发互不影响的目的,这就实现了不同模块开发时的合理分离的作用。
但本人觉得接口还可以这样理解:接口就像一个技能代词,比如说游泳。当定义了一个接口,它就代表了它里面所拥有的技能,任何实现它的对象都可以视为是学会了这种技能,就像会游泳的人一样。但是不同的人游泳方式不同,这就刚好说明了不同对象实现接口里面的方法是不同的。而怎样把这个观念加到编程分层的思想中呢?我觉得这样去理解比较容易,也比较具有现实意义一些。我是这样理解的:还是拿游泳作例子吧,游泳是一个接口,实现它的对象就是会游泳的人,不同人有不同的游泳方式,而且可以直接拿游泳这个接口来指代实现它的对象,就跟游泳老师问学生说有谁已经会游泳了的道理是一样的,会游泳可以指代所有会游泳的人,而最关键的一步就是在编程中要拿一个队列来装这些已经实现接口了的对象,之后调用它们各自的实现方法,也就是叫会游泳的所有人排好队,然后直接下去游泳了,但是有人用蛙式,有人用蝶式而已。这也是接口在java源码中的实现方法,用一个队列去装载,然后遍历队列去实现。
当你理解到这一步的时候,我相信你应该知道怎样在编程中去实践代码分离的思想了吧,无非就是确定有什么类,类与类之间的关系,然后确定这些类中有什么方法的功能类似的,或是说是同源的,然后尽量把这些方法归到接口中,让类去实现接口,这样就能比较有效地使代码变得清晰、可重用、可扩展了。
分享到:
相关推荐
《基于Java的企业合同管理系统的设计与实现》 在信息化飞速发展的今天,企业对高效、规范的合同管理需求日益增强。本文将深入探讨如何利用Java技术,结合数据库管理系统,设计并实现一套适合企业使用的合同管理系统...
3. 部门管理:创建、编辑和删除部门,设置部门结构,管理上下级关系。 4. 职位管理:定义和维护公司内的职位信息,包括职位名称、级别、薪资范围等。 5. 招聘管理:发布招聘信息,收集和跟踪应聘者简历,进行面试...
《Android系统原理与开发要点》是一份全面介绍Android开发的教程,适合初学者和有经验的开发者学习。这个教程深入浅出地讲解了Android开发的关键技术,包括Android系统的架构、核心组件以及多媒体处理等多个方面。 ...
### 一、系统架构与技术栈 #### 1. **开发环境** - **操作系统**:Windows/Mac - **开发语言**:Java - **框架**:Spring Boot - **架构模式**:B/S、MVC - **IDE**:IntelliJ IDEA、Eclipse - **JDK版本**:...
该系统的主要技术和设计要点如下: 1. **系统功能**:系统为用户提供了丰富的功能,包括会员注册,让用户能够创建个人账户;旅游景点预览,方便用户了解各景点信息;网上订票,允许用户在线购买门票。同时,针对...
Android系统采用分层结构,由底层硬件抽象层到上层应用框架层,包括Linux内核、系统库、运行时环境、应用程序框架以及各种应用程序。理解这一架构有助于开发者更好地定位问题和优化性能。 1. Linux内核:Android...
- **SSM(Spring+SpringMVC+MyBatis)**:这是一种常用的Java Web开发架构,用于构建分层的Web应用程序。 - **MySQL**:作为数据库管理系统,MySQL因其高性能、稳定性和易于管理而被选用。 ##### 开发工具: - **...
- **SSM框架**:即Spring + Spring MVC + MyBatis的组合,用于构建分层的Java Web应用程序。 - **JSP**:一种基于Java技术的服务器端脚本语言,用于创建动态网页。 - **MySQL**:关系型数据库管理系统,为项目提供...
### 基于SpringBoot的网上点餐系统关键技术解析 #### 一、项目背景与意义 随着互联网技术的快速发展和普及,人们的生活方式发生了翻天覆地的变化,尤其是在餐饮行业中,网上点餐系统逐渐成为主流趋势。传统的点餐...
在《DZCMS插件开发指南》中,我们深入探讨了如何利用SpringPortletMVC框架进行插件开发,具体通过一个用户注册详细信息编辑与查看功能的实例来展开。本篇文章旨在对这一开发过程进行全面解析,帮助读者理解并掌握...
- IP地址采用分层结构,其中“200.201.202.203”确实是一个C类IP地址。 - 主机名与IP地址之间并非一一对应关系,可以通过DNS服务进行动态解析。 ### 8. 接口定义 在面向对象编程中,定义一个接口需要使用关键字`...
### Spring Boot 最全企业级博客前后端视频教程知识点解析 ...此视频教程通过丰富的实例讲解,不仅帮助初学者快速入门Spring Boot,还能让有一定基础的开发者深入理解和掌握企业级项目的开发流程和技术要点。