Effective C++笔记04:设计与声明】的更多相关文章

条款18:让接口容易被正确使用,不易被误用 1,好的接口很容易被正确使用,不容易被误用.你应该在你的所有接口中努力达成这些性质. 2,“促进正使用”的办法包括接口的一致性,以及与内置类型的行为兼容. 3,“阻止误用”的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任. 4,shared_ptr支持定制型删除器.这可以防范DLL问题,可以用来自动解除互斥锁. 条款19:设计class犹如设计type 博客地址:http://www.cnblogs.com/ronny/ …
条款18:让接口easy被正确使用,不易被误用 1,好的接口非常easy被正确使用,不easy被误用.你应该在你的全部接口中努力达成这些性质. 2,"促进正使用"的办法包含接口的一致性,以及与内置类型的行为兼容. 3,"阻止误用"的办法包含建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任. 4,shared_ptr支持定制型删除器.这能够防范DLL问题,能够用来自己主动解除相互排斥锁. 条款19:设计class宛如设计type 博客地址:http…
18:让接口容易被正确使用,不易被误用 1:理想上,如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不该通过编译:如果代码通过了编译,它的作为就该是客户所想要的. 2:许多客户端的错误可以因为导入新类型而得到预防.比如下面的接口: class Date { public: Date(int month, int day, int year); ... }; 这个接口很容易使客户犯错,比如: Date d(, , ); // Oops! Should be "3, 30" ,…
条款18:让接口容易被正确使用,不易被误用 必须考虑客户可能做出什么样的错误(防御式编程)std:shared_ptr会自动使用它的"每个指针专属的删除器",消除了"cross-DLL problem"(对象在DLL中被 new 创建,却在另一个DLL中 delete 销毁) 条款19:设计 class 犹如设计 type 类型系统 条款20:宁以 pass-by-reference-to-const 代替 pass-by-value C语言永远是pass-by-v…
章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(2)-读书笔记 <Effective C++>第3章 资源管理(1)-读书笔记 <Effective C++>第3章 资源管理(2)-读书笔记 <Effective C++>第4章 设计与声明(1)-读书笔记 <Eff…
章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(2)-读书笔记 <Effective C++>第3章 资源管理(1)-读书笔记 <Effective C++>第3章 资源管理(2)-读书笔记 <Effective C++>第4章 设计与声明(1)-读书笔记 <Eff…
Item 5: Know what functions C++ silently writes and calls 在C++中,编译器会自己主动生成一些你没有显式定义的函数,它们包含:构造函数.析构函数.复制构造函数.=运算符. 有时为了符合既有设计.我们不希望自己主动生成这些函数.我们能够把它们显式声明为private. 此时在使用这些类的客户看来,它们就像不存在一样. class Empty{ public: // 默认构造函数 Empty(){} // 拷贝构造函数 Empty(const…
第四章: 设计与声明 18. 让接口更容易被正确使用,不易被误用 将你的class的public接口设计的符合class所扮演的角色,必要时不仅对传参类型限制,还对传参的值域进一步限制. 19. 设计class犹如设计type 内置类型如int.float等,本质也是一个class,用户自定义的class的行为和状态应当与内置类型类似的.设计class时,首先要考虑构造和析构.然后是赋值操作如何实现.考虑class是否要继承某一已有class.尽量使你的class一般化等等需要考虑的问题. 20…
Effective Java笔记一 创建和销毁对象 第1条 考虑用静态工厂方法代替构造器 第2条 遇到多个构造器参数时要考虑用构建器 第3条 用私有构造器或者枚举类型强化Singleton属性 第4条 通过私有构造器强化不可实例化的能力 第5条 避免创建不必要的对象 第6条 消除过期的对象引用 第7条 避免使用终结方法 第1条 考虑用静态工厂方法代替构造器 对于类而言, 最常用的获取实例的方法就是提供一个公有的构造器, 还有一种方法, 就是提供一个公有的静态工厂方法(static factory…
java effective 读书笔记 []创建和销毁对象 静态工厂方法 就是“封装了底层 暴露出一个访问接口 ” 门面模式 多参数时 用构建器,就是用个内部类 再让内部类提供构造好的对象 枚举 singleton 不知道怎么操作,觉得意义不大 单例模式 私有化构造器不能实例化,也不可被子类继承 能用原生类的就尽量不用对象 []对于所有对象都通用的方法 reflexivity 自反性 symmetry 对称性 []类成员 降低可访问性 尽量把公有域 变成私有域,并提供 访问和修改的 get se…