条款18:让接口容易被正确使用,不易被误用(Make interface easy to use correctly and hard to use incorrectly)
NOTE :
1.好的接口容易被正确使用,不容易被误用。应该让所有接口努力达成这些性质。
2.“促进正确使用”的办法包括接口的一致性,以及内置类型的行为兼容。
3.“阻止误用”的办法包括建立新类型/限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。
4.tr1::shared_ptr 支持定制型删除器(custom deleter)。这可以防范DLL问题,可以被用来自动解除互斥锁(mutexs)等等。
条款18:让接口容易被正确使用,不易被误用(Make interface easy to use correctly and hard to use incorrectly)的更多相关文章
- effective c++  条款18 make interface easy to use correctly and hard to use incorrectly
		
举一个容易犯错的例子 class Date { private: int month; int day; int year; public: Date(int month,int day,int ye ...
 - 读书笔记 effective c++ Item 18 使接口容易被正确使用,不容易被误用
		
1. 什么样的接口才是好的接口 C++中充斥着接口:函数接口,类接口,模板接口.每个接口都是客户同你的代码进行交互的一种方法.假设你正在面对的是一些“讲道理”的人员,这些客户尝试把工作做好,他们希望能 ...
 - Effective C++ Item 18 Make interfaces easy to use correctly and hard to use incorrectly
		
1. A good API will provide easy to use interfaces but also provide hard to miss-use interfaces. Usua ...
 - Effective C++(18)  让接口更容易被正确使用,不易被误用
		
问题聚焦: 从这个条款开始,我们把注意力转移到软件设计和声明上来,具体的说就是,C++接口的设计和声明. 所谓软件设计,就是以一般习惯的构想开始,演变成细节的实现,最终开发针对性的特殊 ...
 - EC笔记:第4部分:18、接口正确使用,不易被误用
		
好的接口容易被正确使用,不易被误用 考虑以下函数: void func(int year,int month,int day){ //一些操作 } 这个函数看似合理,因为参数的名字已经暴露了它的用途. ...
 - [Effective C++ --018]让接口容易被正确使用,不易被误用
		
□第一节 什么是接口?什么是接口?百度百科的解释:两个不同系统(或子程序)交接并通过它彼此作用的部分.接口的概念贯穿于整个软件开发过程中,本文讨论的接口概念仅局限于以C++实现的class,funct ...
 - Effective C++ -----条款18:让接口容易被正确使用,不易被误用
		
好的接口很容易被正确使用,不容易被误用.你应该在你IDE所有接口中努力达成这些性质. “促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容. “阻止误用"的办法包括建立新类型.限 ...
 - effectivec++条款18,让接口容易被正确使用,不宜被吴勇
		
test* create_test(); shared_ptr<test> create_test();//下面的接口比上面的接口要好 auto_ptr<test> creat ...
 - Effective C++ 条款18
		
让接口easy被正确使用,不easy被误用 如题目,我们自己的程序接口是面向用户的,程序的目的不可是解决这个问题,并且要让用户easy使用.所以.必须保证我们的程序接口具有非常强的鲁棒性. 怎么保证接 ...
 
随机推荐
- 不常见偏门的Bug,Spring Boot IDEA 静态资源 图片访问404,初学者之殇
			
用过Idea朋友都知道,它有一个非常让人喜欢的功能就是:打算在某个a目录下创建一个hello.class文件,那么你仅需要右键点击New-Java Class- 然后输入名字:a.hello 即可. ...
 - 揭开Python科学计算的面纱
			
春牛春杖.无限春风来海上.便与春工.染得桃红似肉红. 春幡春胜.一阵春风吹酒醒.不似天涯.卷起杨花似雪花. 标准的Python中用列表保存一组值,可以当做数组使用,但是由于其值类型任意,所以列表中保存 ...
 - iOS bounds vs frame
			
斯坦福iOS开发课程的白胡子大叔的PPT解释得淋漓尽致!
 - Java | 基础归纳 | set
			
用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复.
 - POJ3417(树上差分)
			
会卡vector. ; int n, m, Ans; ], to[maxn * ], tot; int vis[maxn], f[maxn]; int d[maxn], sum[maxn]; vect ...
 - 【译】建立属于你的个人高效系统——效率专家 Mike Vardy 教你如何设置一个简单的个人高效系统
			
原文:http://mux.baidu.com/?p=5300 百度MUX 已经有太多的高效系统供人使用,而对于那些刚刚开始,想寻求更好方法完成他们任务,项目,目标的人来说,要做一个高效系统却是相当艰 ...
 - (转)新手学习System Verilog & UVM指南
			
从刚接触System Verilog以及后来的VMM,OVM,UVM已经有很多年了,随着电子工业的逐步发展,国内对验证人才的需求也会急剧增加,这从各大招聘网站贴出的职位上也可以看出来,不少朋友可能想尽 ...
 - 数据库连接池proxool的两种使用方式
			
数据库连接池可以通过两种方式来应用,针对web应用和非web应用而来. 非web应用的数据库连接池配置 第一种方式:工厂类 非web应用可以使用工厂模式将数据库连接创建封装在一个工具类中,工具类中又使 ...
 - ChromiumWebBrowser禁止鼠标右键和拖动
			
在屏蔽之前先查看namespace CefSharp.WinForms内的代码 public class ChromiumWebBrowser : Control, IWebBrowserIntern ...
 - Unity c# 状态机的简单入门
			
状态机模式在unity中作用是非常大的,可以实现角色的移动和场景的跳转,包括一些动画的播放,在很多unity框架中也是很常见的,发散思维广阔,下面是简单的状态机的实现,有注释 using System ...