从事了几年的android应用开发,这几年一直都是用Java开发,今年找了一家OEM公司,说白了就是Android系统源码定制,在这家公司学习了Python, C++。因为接触JNI会比较多一点,所以下面想和大家谈谈我看C++代码的一些理解。
我主要是从看代码和维护代码的角度来看,不涉及更深的技术层面。也欢迎大家来一起讨论下各自的理解。
首先我个人非常喜欢C++的头文件。C++的头文件类似于Java1.8的接口,可以在这里面定义好所有的接口方法/虚函数, 我觉得好的头文件应该是数据集+行为规范集合,以及给需要被子类重写的功能的默认实现,Java1.8已经有讨论过为什么接口类的接口方法为什么需要给出默认的实现。这里面牵涉的东西挺多的,我想好好整理下,下次给大家发出来。
以我肤浅的理解,头文件容纳了Java的接口和抽象类的诸多好处,完美的把定义和实现分离,开发代码的时候几乎可以完全忽略头文件对应的实现类CPP。对于代码的维护是非常方便的。但是从看代码的角度看,C++有个类似于Java的static import的功能,
比如
public class A { public static final int STATUS_START = 0; public static final int STATUS_STOP = 1; }
static import A.STATUS_START; static import A.STATUS_STOP; public class B { }
通过static import,那么B类在使用STATUS_START和STATUS_STOP时,在代码中使用就完全隐藏了它们的来源。以我个人看代码的习惯,有时候还是挺别扭的。它的好处是有,就是可以完全的无缝的结合代码。但是坏处是维护人员会花费更多的时间去寻找这个引用的初始定义处。C++到处都是这样很难找到出处的引用。
最后收尾下,第一次写博客,写的不好的地方,还请各位朋友见谅。
时间: 2024-10-13 02:40:21