当我读到用java思考的时候,
接口和内部类提供了更多灵活的方法来组织和控制系统中的对象。例如,C++不包含这样的机制,尽管聪明的程序员可能会模拟它们。
C++程序员是否确实拥有java所拥有的特性,例如接口和约束自己不跨越边界,例如在模拟的接口中包括非静态的最终(非const)数据成员?
这些特性是Java为开发software.So提供的自然方式吗?如果C++程序员可以的话,他们应该像一个C++程序员那样编写代码和思考吗?
编辑:我知道每个编程语言都有自己的特点和应用领域,而编程语言的设计正在使tradeoffs.But成为,我想知道的是,java引入的接口是否更好地帮助/迫使程序员进行深入思考并产生良好的类设计?那么C++程序员想要模拟其中的一些特性吗?
谢谢。
发布于 2009-12-23 20:53:18
我不得不说,“好的”Java设计几乎都是糟糕的。在查看Java代码时,我从未见过如此多的代码复制、荒谬的分层抽象级别(但几乎从未见过在这种情况下真正有意义的抽象)。
C++有许多优秀的特性,这是Java所无法比拟的。功能,使更干净,更健壮和更优雅的设计。
C++程序员应该像C++程序员那样编码。有两个很好的理由:
,
由于您提到接口是C++程序员应该模仿的特性的一个示例,因此有两个重要的对应点:
IIterator
接口派生出来,我们还可以简单地定义一个“迭代器”应该如何运行,并编写一个为成员提供相同名称的类。只要它“看起来像”迭代器,它就可以用作迭代器。模板元编程技巧甚至可以调整现有的类以“改造”它们,以支持它们不是为其设计的概念。例如,尽管缺少几个typedef
成员,但原始指针(取自C)作为完全有效的迭代器工作。甚至一开始都不是类。当然,C++也有很多弱点。但它并不是一个简单的“劣等Java”。这是一种不同的语言。C++程序员不需要模仿Java特性。
,正如我在用java阅读的Thinking中所看到的
Java书籍很少是有关C++的良好信息来源。;)
发布于 2009-12-23 19:33:51
这有点主观,但是:
如果C++程序员可以的话,他们应该像一个C++程序员那样编码和思考吗?
不是的。他们应该像C++程序员那样编码和思考。C++有许多在Java中不存在的习惯用法和技术(反之亦然)。您应该使用与语言相适应的习惯用法和思维模式,而不是尝试用C++语法编写Java (或Pascal或Fortran)。
(当然,这并不意味着不要借用其他语言的技巧.!)
发布于 2009-12-23 19:33:32
C++接口很简单:它们只是包含所有纯虚拟方法的类,包括一个纯虚拟默认析构函数。(多亏了itowlson的修正。)
https://stackoverflow.com/questions/1954853
复制相似问题