Jic*_*hao 5 c++ java interface
正如我在Java中的Thinking中所读到的,
接口和内部类提供了更复杂的方法来组织和控制系统中的对象.例如,C++不包含这样的机制,尽管聪明的程序员可以模拟它们.
C++程序员是否真的熟悉java拥有的功能,例如接口和约束它们自己不会越过边界,例如在模拟接口中包含非静态最终(非常量)数据成员?
这些特性是Java为开发软件提供了自然的方式.那么,如果C++程序员可以,他们应该像Java程序员一样编码和思考?
编辑:我知道每个编程语言都有自己的特点,它的应用领域和编程语言的设计正在进行权衡.但我想知道的是java引入的例子界面是否是更好的方法来帮助/强制程序员思考彻底并产生良好的类设计?所以C++程序员想模拟其中的一些功能?
谢谢.
ito*_*son 34
这有点主观,但是:
如果C++程序员可以,他们应该像Java程序员一样编码和思考?
不,他们应该像C++程序员一样编码和思考.C++有很多在Java中不存在的习语和技术(反之亦然).您应该使用适合该语言的习语和思维模式,而不是尝试使用C++语法编写Java(或Pascal或Fortran).
(这并不意味着不要借用其他语言的技巧,当然......!)
duf*_*ymo 17
C++接口很简单:它们只是包含所有纯虚方法的类,包括纯虚拟默认析构函数.(感谢itowlson的纠正.)
jal*_*alf 11
我不得不说"好"的Java设计几乎是一成不变的.在查看Java代码时,我从来没有见过如此多的代码重复,荒谬的分层抽象层次(但几乎从来没有在这种情况下实际上有意义的抽象).
Java没有很多与C++相同的优点.功能更清晰,更坚固,更优雅的设计.
C++程序员应该像C++程序员一样编写代码.有两个很好的理由:
由于您提到接口作为C++程序员应该模拟的功能的示例,因此有两个重要的对立点:
IIterator我们可以简单地定义"迭代器"的行为方式,并编写一个为成员提供相同名称的类,而不是让每个迭代器都来自一个接口.只要它"看起来像"一个迭代器,它就可以用作迭代器.模板元编程技巧甚至可以使现有的类能够"改进"它们以支持它们不是为其设计的概念.例如,原始指针(取自C)作为完全有效的迭代器工作,尽管缺少一些typedef成员.甚至没有首先上课.当然,C++也有很多弱点.但它不仅仅是一种"劣等Java".这是一种不同的语言.有没有必要为C++程序员效仿Java功能.
正如我在Java中的Thinking中所读到的
Java书籍很少是C++信息的良好来源.;)
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |