`

初识接口编程的一个好处

阅读更多
突然用这个方法的起因很简单,偷懒,方便。起先,我做的一些工作变动性不是很大,一个函数功能的代码比较通过用,也很少接触什么类继承之类的东西。你知道,一些底层的结构不会今天是short明天又变long,应用程序传给我的数据经过层层剥离,最终都还原成了最简单的数据模式。不过,这东西还是碰上了。
开门见山直接如下:


    在类application A里面,command为一些公共方法,write和read对结构体struct进行操作。看似 很简洁。若干日后,突然有了另一个程序,称为application B,除了结构体不一样,其他几乎都不变。为了图方便,直接在文件上修改,把struct里面一些数据做了变动,write和read中把application A一些方法注释掉,加上application B的读取方式。
    当我还在为command那些方法沾沾自喜的时候,突然需要调试A的代码。我不得不调出cpp文件,把application B代码注释,结构体改动。。编译,修改。。。。
    虽然一切都很顺利,但是我却开始冒冷汗了,如果有application C,D......

几经商酌,把架子改成如下


首先把command和 read/write方法拿出,read/write为纯虚的方法。
在application A的CPP文件里,我先增加了一个application A的结构体,并且继承了我抽出来的类,对接口read/write进行重写,这样我在调试application A的程序时候,可以尽情的修改。。
application B程序?不怕,继续像application A一样泡制一番。

这样给我感觉最大的好处是,代码管理规范了很多,包括代码后期的修改,代码的扩充,复用也高了点(这个得视command function而定),,,

以上是在下初次接触接口编程,不足之处还请大家斧正
2
2
分享到:
评论
1 楼 uniseraph 2008-08-18  
haha,很久很久以前做个一个跟你类似的东东。

建议使用模板类,可以避免void*以及运行中的downcast,而且可以大大简化代码,呵呵。

相关推荐

    初识Spring

    Spring框架是Java企业级应用开发中的核心框架,它为开发者提供了一个全面的基础设施,用于创建稳定、高性能的应用程序。Spring的核心特性包括依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-Oriented ...

    初识Java_课后补充作业

    通过“初识Java_课后补充作业”的深入练习,初学者可以逐步建立起对Java编程的系统认识,掌握基本的编程技巧,为后续的高级主题学习打下坚实的基础。在实际操作中遇到问题,应当积极查阅文档,利用在线资源,不断...

    初识PLC-PLC编程软件的使用共21页.pdf.zip

    【初识PLC——PLC编程软件的使用】 PLC,全称为可编程逻辑控制器(Programmable Logic Controller),是工业自动化控制领域中不可或缺的重要设备。这篇21页的PDF文档,"初识PLC——PLC编程软件的使用",旨在引导...

    正经人科技--初识microbit与mind+软件.pptx

    * 该智能积木可以使用乐高的图形编程环境,或从许多第三方语言之中选择一个进行编程 * 乐高也制作了一系列贴有动力组件(Power Functions)标签销售的马达、连接器、灯具及红外线接收器 本资源为初识Microbit和Mind...

    初识MyBatis

    MyBatis 是一个支持普通 SQL 查询、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索。MyBatis 使用简单的 XML 或注解进行配置和原始映射,将接口和 Java 的 ...

    一.初识JPA2.0

    Java Persistence API (JPA) 是Java平台上的一个标准,用于处理对象关系映射(ORM),它允许Java开发者将对象模型与关系数据库进行交互。JPA 2.0是这个标准的一个重要版本,引入了许多新特性和改进,使得在Java应用...

    凔海笔记之单片机(二):初识单片机

    它将中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、可编程只读存储器(EPR0M)以及各种输入输出(I/O)接口等功能部件集成在一起,形成一个完整的计算机系统。单片机的核心在于其高度集成化的特点,使得它可以...

    C# 与ASP.NET初识教程清淅版 PDF

    【C# 与ASP.NET初识教程清淅版 PDF】是一个专门为初学者设计的教程,旨在帮助学习者深入了解和掌握C#编程语言以及ASP.NET Web应用程序开发基础。本教程覆盖了从基本概念到实际应用的关键知识点,对于想要踏入IT行业...

    1.初识Java作业-1

    对于Java源文件,一个源文件可以包含多个类,但最多只能有一个公共类(public class),并且这个公共类的名称必须与源文件名相同。例如,如果公共类名为`A1`,源文件应命名为`A1.java`。 Java源文件的编译通常使用`...

    oc初识总代码

    Objective-C是苹果公司开发的面向对象的编程语言,它是C语言的一个扩展,主要用于iOS和Mac OS X操作系统上的应用程序开发。 在OC中,我们首先会接触到类(Class)和对象(Object)的概念。类是对象的模板,它定义了...

    01第1章 初识C++——C++程序设计入门

    继承允许创建一个类(子类)作为另一个类(父类)的扩展,多态则提供了接口的多样性,使得子类可以覆盖或扩展父类的行为。 最后,C++还支持模板(template),使得函数和类可以处理不同类型的参数,增强了代码的可...

    Android NDK编程C++初识,基本数据类型使用

    `JNIEnv*`参数是一个指向JNI接口指针的指针,用于访问Java对象和执行其他操作。 为了在Java层调用这个C++函数,你需要在对应的Java类中声明一个native方法,并使用`System.loadLibrary()`加载对应的动态链接库(.so...

    初识java.zip

    通过"初识Java"的学习,新手将对这些基本概念有一个全面的认识。配合提供的上机练习和课后作业,他们可以实践并巩固所学知识。教学演示案例可能包含解决实际问题的代码示例,帮助学习者更好地理解和应用理论知识。...

    JAVA基础-初识JAVA

    9. **学习资源**:`初识java.md`可能是一个Markdown格式的学习笔记或教程,详细介绍了Java的基本概念和用法。`code`可能包含了一些示例代码,供学习者实践和理解。 总之,"JAVA基础-初识JAVA"这个主题涵盖了Java...

    从初识C语言到C语言进阶源码.zip

    《从初识C语言到C语言进阶源码》是一个针对C语言学习者的全面资源包,旨在帮助初学者从基础入门逐步提升至高级编程技能。这个压缩包包含了一个名为"c-language-master"的项目目录,我们可以从这个目录结构中推测出一...

    初识java,用springBoot学习java.zip

    总之,"初识java,用springBoot学习java.zip"这个压缩包为你提供了一个从零开始学习Java和Spring Boot的良好起点。通过这个项目,你可以深入理解面向对象编程的基本概念,掌握Spring Boot的自动配置和快速开发能力,...

    初识Papervision3D

    《初识Papervision3D》这篇博文和其中的POne.swf文件可能包含一个简单的3D示例,读者可以通过查看和运行这个文件更好地理解Papervision3D的工作原理。在学习过程中,结合源码分析和实际操作是掌握技术的关键步骤。 ...

    Delphi基础教程图文版之初识面向对象.docx

    在面向对象编程中,多态性表现为同一个方法名可以有不同的实现方式,或者不同的对象可以用同一接口表示。多态性提高了程序的灵活性和可扩展性。 #### 三、面向对象编程的设计原则 面向对象编程不仅仅是一组技术,...

    初识webservice

    "服务开始,这个服务接收一个字符串参数并返回一个问候消息。这样的练习有助于理解Web服务的基本工作原理,同时也能熟悉相关技术和工具的使用。 在实践过程中,你可能会遇到如版本兼容性、安全性、性能优化等问题。...

Global site tag (gtag.js) - Google Analytics