第二条:类的头文件中尽量少引入其他头文件

使用向前声明(forward declaring)

@class EOCEmployer

1, 将引入头文件的实际尽量延后,只在确有需要时才引入,这样就可以减少类的使用者所需引入的头文件数量,减少编译时间。

2,解决了两个类互相引用的问题

有时无法使用向前声明,比如要声明某个类遵循一项协议。这种情况下,尽量把“该类遵循某 协议”的这条声明移至“class-continuation分类“中。如果不行的话,就把协议单独放在一个头文件中,然后将其引入。

转载于:https://www.cnblogs.com/IDRI/p/5023065.html

Effective Objective-C 2.0 — 第二条:类的头文件中尽量少引入其他头文件相关推荐

  1. [Effective Objective] 熟悉Objective-C

    了解 Objective-C Objective_C 是一种面向对象的语言.但与jave.C++等语言不同,它使用了消息结构(messaging structure)而非函数调用(function c ...

  2. 将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中

    将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中 写这种.h和.cpp文件分开的大程序,虽然对很多人来说很简单,对自己来说算是第一次吧,好好学C++,加油~ 题目:定义Point类,由 ...

  3. MATLAB学习第二天(基础语法、变量、命令以及新建自己文件)

    目录​​​​​​​ 一.MATLAB基本语法 执行MATLAB命令 MATLAB实践 MATLAB常用的运算符和特殊字符 MATLAB常用的运算符使用示例 MATLAB特殊变量和常量 MATLAB命名 ...

  4. Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交。第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4)

    Java黑皮书课后题第9章:**9.12(几何:交点)假设两条线段相交.第一条线段的两个端点是(x1, y1)和(x2, y2),第二条线段的两个端点是(x3, y3)和(x4, y4) 题目 破题 ...

  5. Effective Java(第3版) 90条经验法则

    目录 第2章 创建和销毁对象 第1条:用静态工厂方法替代构造器 第2条:遇到多个构造器参数时要考虑使用构建器 例子 使用 第3条:用私有构造器或者枚举类型强化Singleton属性 例子 使用 第4条 ...

  6. More Effective C++之 Item M30:代理类

    虽然你和你的亲家可能住在同一地理位置,但就整个世界而言,通常不是这样的.很不幸,C++还没有认识到这个事实.至少,从它对数组的支持上可以看出一些迹象.在FORTRAN.BASIC甚至是COBOL中,你 ...

  7. php插入数据进度条,PHP导入进度条类

    这篇文章主要介绍了关于PHP导入进度条类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 最近在做一个客户导入的功能,整理的一个导入的进度条类:<?php /** * @File ...

  8. 【IOS 开发】Objective - C 面向对象高级特性 - 包装类 | 类处理 | 类别 | 扩展 | 协议 | 委托 | 异常处理 | 反射

    一. Objective-C 对象简单处理 1. 包装类 (1) 包装类简介 NSValue 和 NSNumber : -- 通用包装类 NSValue : NSValue 包装单个 short, i ...

  9. 《Effective Java》学习笔记 第二章 创建和销毁对象

    第二章 创建和销毁对象 何时以及如何创建对象,何时以及如何避免创建对象,如何确保他们能够适时地销毁,以及如何管理对象销毁之前必须进行的各种清理动作. 1 考虑用静态工厂方法代替构造器 一般在某处获取一 ...

最新文章

  1. REST API 基于ACCESS TOKEN 的权限解决方案
  2. Linux升级as,Linux AS版 是什么意思?
  3. DrawerLayout
  4. c语言溢出该怎么算,解决整数运算溢出方法——C语言
  5. Android之调用js常见错误
  6. 小米6 Pro工程机惊现闲鱼 炒至2万多,王腾:太超前 卖1万都亏本
  7. python实现简单计算器_Python实现的简单计算器功能详解
  8. java登录验证用重定向_使用filter进行登录验证,并解决多次重定向问题
  9. Facebook内布拉斯加州数据中心将扩建100万平方英尺
  10. fastq质量值_高通量测序数据的质量控制FastQC
  11. linux查看虚拟内存使用,Linux 使用 vmstat 查看虚拟内存状态
  12. sorted()函数
  13. 你会选择逃离北上广回小城市写代码吗?
  14. windows7改linux密码忘记了,Windows 7和Linux忘记了启动密码怎么办?-win7忘记开机密码...
  15. 用计算机代码模拟基因,一种通过计算机程序模拟产生简化DNA甲基化测序数据的方法与流程...
  16. 类似 迈图7608 Monentive7608 上海荟研 高新材料 印刷油墨 合成革离型纸 水性涂料基材润湿剂 超润湿剂资料
  17. HMS华为账号登入全部流程加详解流程机制
  18. 记win10下ubantu子系统运行shell脚本的坑
  19. Linux安装telnet服务、telnet 命令用法
  20. 产品用户手册难写在哪里?

热门文章

  1. SQL Sever 错误和异常处理
  2. 【Scala】Scala中常见集合的使用---代码详解
  3. 彻底解决Eclipse的控制台console按钮非常小
  4. python numpy库安装winerror5_求问安装numpy+mkl报错FileNotFoundError: [Errno 2] No such fi
  5. 技巧 | 如何使用R语言的常用工具包绘制双变量填充地图
  6. 前端开发基础知识整理--web综合篇
  7. 2020年Web前端技术的三大趋势(干货)
  8. jmeter持续时间循环控制器_不写代码实现条件循环?只用Jmeter就能实现
  9. python继承方式是基于原型吗_[译] 为什么原型继承很重要
  10. bootstrap php 多行,使用PHP循环将Bootstrap行和正确的列号添加到元素