zoukankan      html  css  js  c++  java
  • 为什么设计模式在C++社区没有Java社区流行?

      我们发现设计模式在Java社区很流行,但是在C++社区却没有那么被关注,甚至有点被排斥,究竟是什么原因造成这个差异的呢?

       昨天和同事讨论这个问题,最后得出几点原因:

        (1)C++内存需要自己管理,所以有些模式在C++里使用不是那么方便,但是Java不用关心内存,所以在Java里的使用设计模式有天生的优势。随着shared_ptr, weak_ptr, unique_ptr等加入C++11,相信这方面会有所改进。

       (2)在Java的类库体系中,很多设计本身就是基于设计模式的,所以在调用Java类库时,你会不知不觉地使用设计模式,这样导致你在设计自己的接口时也会使用设计模式。

       (3)C++一般被用来解决一些比较底层的问题,所以用C++时,我们更多的关心是如何实现某个feature; 但是Java借助其丰富的类库,实现feature往往不是问题,所以他们有更多精力关注设计。

       (4)设计模式一般要间接层,会造成性能的损失,而C++应用的场合往往比较强调性能。对于这个问题,如果你的程序更注重性能(比如内核),确实不应该引入太多间接层;但是如果你的程序更注重可扩充性和可维护性,你就该考虑设计模式了。

       (5)C++社区的很多程序员是从c甚至汇编转过来的,所以这些人更习惯面向过程的设计方式,即使用C++也只是拿来封装一些简单的类,用不到设计模式。

       (6)C++支持多种编程模型,包括面向过程,面向对象,基于对象,泛型编程等,设计模式主要是基于面向对象的,而Java只支持面向对象开发。

       最后贴张某校的招生海报,你看看究竟是C, 还是C++?你是怎么看设计模式在C++社区的使用情况呢?

        

    http://www.cppblog.com/weiym/archive/2012/06/14/178758.html

    设计模式在比较大型的C++开源项目中用的还是比较多的,比如网络库ACE,界面库QT,游戏引擎Orge, Irrlicht等 

  • 相关阅读:
    NLP-Progress记录NLP最新数据集、论文和代码: 助你紧跟NLP前沿
    深度学习、图像识别入门,从VGG16卷积神经网络开始
    反向传播神经网络极简入门
    R语言中的遗传算法详细解析
    模拟退火算法
    TensorFlow利用A3C算法训练智能体玩CartPole游戏
    伯克利推出「看视频学动作」的AI智能体
    深度强化学习资源介绍
    Introducing Deep Reinforcement
    库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)
  • 原文地址:https://www.cnblogs.com/findumars/p/5794167.html
Copyright © 2011-2022 走看看