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

条款23:宁以non-member、non-friend替换member函数

1.使用场景举例

网络浏览器类


当然这一功能也可以由一个non-menber函数(更好的封装,本条款的核心立意)提供:

面向对象守则要求数据应该尽可能的被封装,然而与直观相反地,member函数clearEverything带来的封装性比non-member函数低。如何认识封装?越多的东西被封装,我们改变那些东西的能力也就越大。所以,从这个角度讲,member函数增大了访问class内private成分的能力,导致较大封装性的是non-member、non-friend函数。friend函数与member函数对成员变量的访问能力相同,这里选择的关键并不是member函数与non-member函数,而是member函数与non-member、non-friend函数之间。

2.总结

 面向对象的思想要求具备明确每个类的职能,设计类时要尽量体现封装性。

举例:设计一个机器人,基类的机器人应该有手、腿、脚、躯干等。机器人有一些行为,例如挥手、走路等,要基于基类的机器人进行拓展。而不是直接在基类机器人中直接定义这些行为。

相关文章:

  • [嵌入式] 嵌入式软件开发书籍推荐及电子版分享
  • 【干货教程】Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)
  • 习题解答 | 一维差分与等差数列差分
  • sentinel小记
  • 基于大数据爬虫的旅游分析可视化平台设计和实现
  • Https解决了Http的哪些问题
  • RAG从入门到精通系列1:基础RAG
  • Python爬虫系统搭建教程,从0开始搭建爬虫系统(附安装包)
  • Spring Boot 实战篇(四):实现用户登录与注册功能
  • 第9章:LangChain结构化输出-示例3(日期和时间提取服务)
  • 缓存基础解释与缓存友好型编程基础
  • 【嵌入式Linux应用开发基础】进程间通信(6):套接字
  • 从Excel到Hadoop:数据规模的进化之路
  • ubuntu新系统使用指南
  • 大白话React第三章高级应用阶段
  • API接口设计模式:从分层架构到CQRS的实战应用
  • aardio - 虚表——列附加文本及列按钮区域例程
  • 解锁策略模式:Java 实战与应用全景解析
  • docker中常用的命令
  • 【Linux系统】—— 冯诺依曼体系结构与操作系统初理解
  • 网站项目建设主要内容/手机网址大全123客户端下载
  • 网站建设cms系统/推广平台下载
  • 一个网站专门做摩托车/网络营销的优缺点
  • 自己建设外贸网站/太原seo霸屏
  • 宁阳网站定制/水果营销软文
  • 如何学做网站平台/附近广告公司联系电话