当前位置: 首页> 文旅> 美景 > 制作网页排版 怎么将导航放下面_社交网络营销是什么_我想找一个营销团队_百度推广代理商与总公司的区别

制作网页排版 怎么将导航放下面_社交网络营销是什么_我想找一个营销团队_百度推广代理商与总公司的区别

时间:2025/7/11 18:49:30来源:https://blog.csdn.net/weixin_42255569/article/details/144745950 浏览次数:0次
制作网页排版 怎么将导航放下面_社交网络营销是什么_我想找一个营销团队_百度推广代理商与总公司的区别

文章目录

    • 条款 18:让接口容易被正确使用,不易被误用
      • 核心思想
      • 如何促进正确使用
      • 如何阻止误用
      • 特殊案例:`tr1::shared_ptr` 的定制删除器
      • 示例代码
      • 设计原则总结

条款 18:让接口容易被正确使用,不易被误用


核心思想

  • 目标
    好的接口设计应该:
    1. 容易正确使用:通过一致性设计和与内置类型行为兼容,帮助用户直观理解并正确使用接口。
    2. 难以误用:通过引入新类型、限制操作、约束值范围,以及自动化资源管理等方法,减少使用者犯错的可能性。

如何促进正确使用

  1. 接口的一致性

    • 遵循类似标准库的设计习惯。
    • 保证同类功能具有相同的使用方式。
  2. 与内置类型行为兼容

    • 让接口的使用与内置类型的操作一致,从而降低学习和使用成本。

如何阻止误用

  1. 建立新类型

    • 为关键数据定义专门类型,避免误用通用类型造成错误。
    • 示例:为表示角度的值定义 Angle 类型,而不是使用 double
  2. 限制类型上的操作

    • 明确控制哪些操作是允许的,禁止无意义或潜在危险的操作。
  3. 束缚对象值范围

    • 利用类的构造函数和成员函数,限制值的有效范围。
  4. 消除客户的资源管理责任

    • 使用 RAII 管理资源,避免手动管理资源引发错误。

特殊案例:tr1::shared_ptr 的定制删除器

  • 用途
    tr1::shared_ptr 支持自定义删除器(custom deleter),可以用于解决复杂的资源管理问题。

  • 应用场景

    1. 解决 DLL 问题:不同动态库间共享的资源可以通过自定义删除器正确释放。
    2. 自动解除互斥锁:在使用互斥锁等同步工具时,可以通过自定义删除器实现资源的自动管理。

示例代码

#include <memory>
#include <mutex>void customDeleter(std::mutex* m) {m->unlock();  // 自动解锁互斥量delete m;     // 释放互斥量
}int main() {std::mutex* mutex = new std::mutex();mutex->lock();std::shared_ptr<std::mutex> spMutex(mutex, customDeleter);// 互斥量会在 spMutex 释放时被自动解锁并释放内存return 0;
}

设计原则总结

  1. 直观性:接口的行为应符合用户的直觉,使其更容易正确使用。
  2. 防误用:通过类型系统和接口设计强制用户遵守规则,减少错误发生的可能性。
  3. 自动化管理:使用 RAII 等机制消除手动资源管理的负担,提高代码的健壮性。
关键字:制作网页排版 怎么将导航放下面_社交网络营销是什么_我想找一个营销团队_百度推广代理商与总公司的区别

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: