zoukankan      html  css  js  c++  java
  • More Effective C++ 条款32 在未来时态下发展程序

    1. 所谓"在未来时态下发展程序",指的是是程序需要具有良好的可扩展性和可维护性,它要求程序:功能齐全,接口易用,代码泛化,以下原则有助于实现这一目标:

        1). 以C++本身表现各种规范而不是仅仅依赖于注释:如果某个class不打算作为基类,那么就应该以C++语法阻止派生(条款26);如果一个class要求所有对象实体在heap内产生,就以C++语法严格厉行这项约束(条款27),如果copying和assignment对某个class没有意义,就声明为private...

        2). 如果某个类可能会被派生,就将析构函数声明为virtual,如果某个函数在派生类中可能会被重定义,就把它声明为virtual.

        3). 为每一个class处理assignment和copy construction,如果这些函数不易完成,就把它们声明为private以防止编译器自行合成错误版本(条款E11).

        4). 使class的操作符核函数拥有自然的语法和直观的语义,和内置类型行为保持一致.

        5). 任何事情只要能做,就会有人做.如自我赋值,初始化前使用对象,给对象超出范围的值等.因此要使程序具有健壮性,有预防,侦测,甚至更正的能力.

        6). 尽量写可移植代码.

        7). 尽量降低代码之间的依赖性,将更改系统产生的影响降到最小:尽量采用封装性质(条款E20);尽量用匿名namespaces或文件内的static对象和static函数;尽量避免设计virtual base class,因为它的初始化需要由底层派生类完成;尽量避免使用RTTI而导致一层一层的if-else;尽量使用类声明胃不是类定义以降低文件之间的编译依赖性.

    2. 当然,"现在式思维"也很重要:平台依赖,开发时间限制,性能考虑等因素都是重要的约束.但在条件允许的情况下应该使用"未来式思维"编程.

  • 相关阅读:
    分类管理模块
    Java8新特性 集合的stream的map
    条件和分页查询
    工作常用系统汇总
    Dubbo简单环境搭建
    深入浅出 TCP/IP 协议栈
    非对称加密
    理解Cookie和Session机制
    jQuery学习
    数据库系列学习(六)-函数之数学函数
  • 原文地址:https://www.cnblogs.com/reasno/p/4875797.html
Copyright © 2011-2022 走看看