当前位置: 首页 > news >正文

【18】让接口容易被正确使用,不易被误用

1、所谓软件设计,就是“让软件做出你期望它做的事情”的步骤。首先是构想,考虑对外暴露的接口,然后实现。

2、客户没有正确使用自己提供的接口,自己也要负担一部分责任,思考自己的接口是不是简单明了,容易理解。

3、对于多个形参的接口,最好表明每个形参的类型和有效范围。

4、尽量限制哪些事能做,哪些事不能做,尽早暴露错误。如果没有好的理由,与内置类型保持一致。

5、减少用户出错的可能性,考虑,在堆上获取的资源,期望用户使用资源管理类对它封装,但是用户可能忘记。那么,我就对资源封装,并返回给用户一个资源管理对象。对于引用次数为0,执行其它操作的资源管理类,应该在内部指定删除器。

相关文章:

  • 【S13】vector和string优先于动态分配的内存
  • java程序调用序列,存储过程,函数等
  • mysql 1
  • Spring系列之手写一个SpringMVC
  • SharePoint中List的大Version和小Version的区别
  • 20名香港大学生结束湖南广电实习 回味“湘遇”之旅
  • 已附件的形式发送测试报告
  • 我与51CTO博客园的第一次
  • PCA降维
  • PHP 全局变量
  • 朋友圈继续扩大!科蓝软件联合蚂蚁金服发布“移动金融逸平台”
  • MySQL面试题之如何优化一条有问题的SQL语句?
  • UOJ131 [NOI2015] 品酒大会
  • uoj#349. 【WC2018】即时战略(动态点分治)
  • 未来科技展亮相杭州 七大5G应用领域打开全新想象
  • .pyc 想到的一些问题
  • 「面试题」如何实现一个圣杯布局?
  • 【comparator, comparable】小总结
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • 345-反转字符串中的元音字母
  • css选择器
  • Docker下部署自己的LNMP工作环境
  • HTML5新特性总结
  • Java小白进阶笔记(3)-初级面向对象
  • JS学习笔记——闭包
  • Laravel Telescope:优雅的应用调试工具
  • mongo索引构建
  • redis学习笔记(三):列表、集合、有序集合
  • Vue小说阅读器(仿追书神器)
  • windows下使用nginx调试简介
  • 关于Flux,Vuex,Redux的思考
  • 离散点最小(凸)包围边界查找
  • 扑朔迷离的属性和特性【彻底弄清】
  • 如何实现 font-size 的响应式
  • 温故知新之javascript面向对象
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (C++17) optional的使用
  • (附源码)计算机毕业设计ssm电影分享网站
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)VirtualBox安装增强功能
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .Net面试题4
  • .NET中GET与SET的用法
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @javax.ws.rs Webservice注解