《大话设计模式》第一章
|
|
|
- 破讼 阳
- 9 years ago
- Views:
Transcription
1 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 1.1 面 试 受 挫 小 菜 今 年 计 算 机 专 业 大 四 了, 学 了 不 少 软 件 开 发 方 面 的 东 西, 也 学 着 编 了 些 小 程 序, 踌 躇 满 志, 一 心 要 找 一 个 好 单 位 当 投 递 了 无 数 份 简 历 后, 终 于 收 到 了 一 个 单 位 的 面 试 通 知, 小 菜 欣 喜 若 狂 到 了 人 家 单 位, 前 台 小 姐 给 了 他 一 份 题 目, 上 面 写 着 : 请 用 C++ Java C# 或 VB.NET 任 意 一 种 面 向 对 象 语 言 实 现 一 个 计 算 器 控 制 台 程 序, 要 求 输 入 两 个 数 和 运 算 符 号, 得 到 结 果 小 菜 一 看, 这 个 还 不 简 单, 三 下 五 除 二,10 分 钟 不 到, 小 菜 写 完 了, 感 觉 也 没 错 误 交 卷 后, 单 位 说 一 周 内 等 通 知 吧 于 是 小 菜 只 得 耐 心 等 待 可 是 半 个 月 过 去 了, 什 么 消 息 也 没 有, 小 菜 很 纳 闷, 我 的 代 码 实 现 了 呀, 为 什 么 不 给 我 机 会 呢 时 间 :2 月 26 日 20 点 地 点 : 大 鸟 房 间 人 物 : 小 菜 大 鸟 小 菜 找 到 从 事 软 件 开 发 工 作 七 年 的 表 哥 大 鸟, 请 教 原 因, 大 鸟 问 了 题 目 和 了 解 了 小 菜 代 码 的 细 节 以 后, 哈 哈 大 笑, 说 道 : 小 菜 呀 小 菜, 你 上 当 了, 人 家 单 位 出 题 的 意 思, 你 完 全 都 没 明 白, 当 然 不 会 再 联 系 你 了 问 题 小 菜 说 : 我 的 代 码 有 错 吗? 单 位 题 目 不 就 是 要 我 实 现 一 个 计 算 器 的 代 码 吗, 我 这 样 写 有 什 么 class Program static void Main(string[] args) Console.Write(" 请 输 入 数 字 A:"); string A = Console.ReadLine(); Console.Write(" 请 选 择 运 算 符 号 (+ - * /):"); string B = Console.ReadLine(); Console.Write(" 请 输 入 数 字 B:"); string C = Console.ReadLine(); string D = ""; if (B == "+") D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C)); if (B == "-") D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C)); if (B == "*") 1
2 大 话 设 计 模 式 D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C)); if (O == "/") D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C)); Console.WriteLine(" 结 果 是 :" + D); 1.2 初 学 者 代 码 毛 病 大 鸟 说 : 且 先 不 说 出 题 人 的 意 思, 单 就 你 现 在 的 代 码, 就 有 很 多 不 足 的 地 方 需 要 改 进 class Program static void Main(string[] args) Console.Write(" 请 输 入 数 字 A:"); string A = Console.ReadLine(); Console.Write(" 请 选 择 运 算 符 号 (+ - * /):"); string B = Console.ReadLine(); Console.Write(" 请 输 入 数 字 B:"); string C = Console.ReadLine(); string D = ""; if (B == "+") D = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(C)); if (B == "-") D = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(C)); if (B == "*") D = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(C)); if (O == "/") D = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(C)); Console.WriteLine(" 结 果 是 :" + D); 这 样 命 名 是 非 常 不 规 范 的 判 断 分 支, 你 这 样 的 写 法, 意 味 着 每 个 条 件 都 要 做 判 断, 等 于 计 算 机 做 了 三 次 无 用 功 如 果 除 数 时, 客 户 输 入 了 0 怎 么 办, 如 果 用 户 输 入 的 是 字 符 符 号 而 不 是 数 字 怎 么 办 1.3 代 码 规 范 哦, 说 得 没 错, 这 个 我 以 前 听 老 师 说 过, 可 是 从 来 没 有 在 意 过, 我 马 上 改, 改 完 再 给 你 看 看 2
3 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 class Program static void Main(string[] args) try Console.Write(" 请 输 入 数 字 A:"); string strnumbera = Console.ReadLine(); Console.Write(" 请 选 择 运 算 符 号 (+ - * /):"); string stroperate = Console.ReadLine(); Console.Write(" 请 输 入 数 字 B:"); string strnumberb = Console.ReadLine(); string strresult = ""; switch (stroperate) case "+": strresult = Convert.ToString(Convert.ToDouble(strNumberA) case "-": + Convert.ToDouble(strNumberB)); strresult = Convert.ToString(Convert.ToDouble(strNumberA) case "*": - Convert.ToDouble(strNumberB)); strresult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB)); case "/": if (strnumberb!= "0") else strresult = Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB)); strresult = " 除 数 不 能 为 0"; Console.WriteLine(" 结 果 是 :" + strresult); Console.ReadLine(); catch (Exception ex) Console.WriteLine(" 您 的 输 入 有 错 :" + ex.message); 3
4 大 话 设 计 模 式 大 鸟 : 吼 吼, 不 错, 不 错, 改 得 很 快 嘛? 至 少 就 目 前 代 码 来 说, 实 现 计 算 器 是 没 有 问 题 了, 但 这 样 写 出 的 代 码 是 否 合 出 题 人 的 意 思 呢? 小 菜 : 你 的 意 思 是 面 向 对 象? 大 鸟 : 哈, 小 菜 非 小 菜 也! 1.4 面 向 对 象 编 程 小 菜 : 我 明 白 了, 他 说 用 任 意 一 种 面 向 对 象 语 言 实 现, 那 意 思 就 是 要 用 面 向 对 象 的 编 程 方 法 去 实 现, 对 吗?OK, 这 个 我 学 过, 只 不 过 当 时 我 没 想 到 而 已 大 鸟 : 所 有 编 程 初 学 者 都 会 有 这 样 的 问 题, 就 是 碰 到 问 题 就 直 觉 地 用 计 算 机 能 够 理 解 的 逻 辑 来 描 述 和 表 达 待 解 决 的 问 题 及 具 体 的 求 解 过 程 这 其 实 是 用 计 算 机 的 方 式 去 思 考, 比 如 计 算 器 这 个 程 序, 先 要 求 输 入 两 个 数 和 运 算 符 号, 然 后 根 据 运 算 符 号 判 断 选 择 如 何 运 算, 得 到 结 果, 这 本 身 没 有 错, 但 这 样 的 思 维 却 使 得 我 们 的 程 序 只 为 满 足 实 现 当 前 的 需 求, 程 序 不 容 易 维 护, 不 容 易 扩 展, 更 不 容 易 复 用 从 而 达 不 到 高 质 量 代 码 的 要 求 小 菜 : 鸟 哥 呀, 我 有 点 糊 涂 了, 如 何 才 能 容 易 维 护, 容 易 扩 展, 又 容 易 复 用 呢, 能 不 能 具 体 点? 1.5 活 字 印 刷, 面 向 对 象 大 鸟 : 这 样 吧, 我 给 你 讲 个 故 事 你 就 明 白 了 话 说 三 国 时 期, 曹 操 带 领 百 万 大 军 攻 打 东 吴, 大 军 在 长 江 赤 壁 驻 扎, 军 船 连 成 一 片, 眼 看 就 要 灭 掉 东 吴, 统 一 天 下, 曹 操 大 悦, 于 是 大 宴 众 文 武, 在 酒 席 间, 曹 操 诗 性 大 发, 不 觉 吟 道 : 喝 酒 唱 歌, 人 生 真 爽 众 文 武 齐 呼 : 丞 相 好 诗! 于 是 一 臣 子 速 命 印 刷 工 匠 刻 版 印 刷, 以 便 流 传 天 下 样 张 出 来 给 曹 操 一 看, 曹 操 感 觉 不 妥, 说 道 : 喝 与 唱, 此 话 过 俗, 应 改 为 对 酒 当 歌 较 好!, 于 是 此 臣 就 命 工 匠 重 新 来 过 工 匠 眼 看 连 夜 刻 版 之 工, 彻 底 白 费, 心 中 叫 苦 不 迭 只 得 照 办 样 张 再 次 出 来 请 曹 操 过 目, 曹 操 细 细 一 品, 觉 得 还 是 不 好, 说 : 人 生 真 爽 太 过 直 接, 应 改 问 语 才 够 意 境, 因 此 应 改 为 对 酒 当 歌, 人 生 几 何? 当 臣 转 告 工 匠 之 时, 工 匠 晕 倒! 4
5 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 小 菜 你 说, 这 里 面 问 题 出 在 哪 里? 大 鸟 问 道 小 菜 说 : 是 不 是 因 为 三 国 时 期 活 字 印 刷 还 未 发 明, 所 以 要 改 字 的 时 候, 就 必 须 要 整 个 刻 板 全 部 重 新 刻 大 鸟 : 说 得 好! 如 果 是 有 了 活 字 印 刷, 则 只 需 更 改 四 个 字 就 可, 其 余 工 作 都 未 白 做 岂 不 妙 哉 第 一, 要 改, 只 需 更 改 要 改 之 字, 此 为 可 维 护 ; 第 二, 这 些 字 并 非 用 完 这 次 就 无 用, 完 全 可 以 在 后 来 的 印 刷 中 重 复 使 用, 此 乃 可 复 用 ; 第 三, 此 诗 若 要 加 字, 只 需 另 刻 字 加 入 即 可, 这 是 可 扩 展 ; 第 四, 字 的 排 列 其 实 可 能 是 竖 排 可 能 是 横 排, 此 时 只 需 将 活 字 移 动 就 可 做 到 满 足 排 列 需 求, 此 是 灵 活 性 好 而 在 活 字 印 刷 术 出 现 之 前, 上 面 的 四 种 特 性 都 无 法 满 足, 要 修 改, 必 须 重 刻, 要 加 字, 必 须 重 刻, 要 重 新 排 列, 必 须 重 刻, 印 完 这 本 书 后, 此 版 已 无 任 何 可 再 利 用 价 值 小 菜 : 是 的, 小 时 候, 我 一 直 奇 怪, 为 何 火 药 指 南 针 造 纸 术 都 是 从 无 到 有, 从 未 知 到 发 现 的 伟 大 发 明, 而 活 字 印 刷 仅 仅 是 从 刻 版 印 刷 到 活 字 印 刷 的 一 次 技 术 上 的 进 步, 为 何 不 是 评 印 刷 术 为 四 大 发 明 之 一 呢? 原 来 活 字 印 刷 的 成 功 是 这 个 原 因 1.6 面 向 对 象 的 好 处 大 鸟 : 哈, 这 下 你 明 白 了? 我 以 前 也 不 懂, 不 过 做 了 软 件 开 发 几 年 后, 经 历 了 太 多 的 类 似 曹 操 这 样 的 客 户 要 改 变 需 求, 更 改 最 初 想 法 的 事 件, 才 逐 渐 明 白 当 中 的 道 理 其 实 客 观 地 说, 客 户 的 要 求 也 并 不 过 份, 不 就 是 改 几 个 字 吗, 但 面 对 已 完 成 的 程 序 代 码, 却 是 需 要 几 乎 重 头 来 过 的 尴 尬, 这 实 在 是 痛 苦 不 堪 说 白 了, 原 因 就 是 因 为 我 们 原 先 所 写 的 程 序, 不 容 易 维 护, 灵 活 性 差, 不 容 易 扩 展, 更 谈 不 上 复 用, 因 此 面 对 需 求 变 化, 加 班 加 点, 对 程 序 动 大 手 术 的 那 种 无 奈 也 就 成 了 非 常 正 常 的 事 了 之 后 当 我 学 习 了 面 向 对 象 的 分 析 设 计 编 程 思 想, 开 始 考 虑 通 过 封 装 继 承 多 态 把 程 序 的 耦 合 度 降 低, 传 统 印 刷 术 的 问 题 就 在 于 所 有 的 字 都 刻 在 同 一 版 面 上 造 成 耦 合 度 太 高 所 致, 开 始 用 设 计 模 式 使 得 程 序 更 加 的 灵 活, 容 易 修 改, 并 且 易 于 复 用 体 会 到 面 向 对 象 带 来 的 好 处, 那 种 感 觉 应 该 就 如 同 是 一 中 国 酒 鬼 第 一 次 喝 到 了 茅 台, 西 洋 酒 鬼 第 一 次 喝 到 了 XO 一 样, 怎 个 爽 字 可 形 容 呀 是 呀 是 呀, 你 说 得 没 错, 中 国 古 代 的 四 大 发 明, 另 三 种 应 该 都 是 科 技 的 进 步, 伟 大 的 创 造 或 发 现 而 唯 有 活 字 印 刷, 实 在 是 思 想 的 成 功, 面 向 对 象 的 胜 利 小 菜 也 兴 奋 起 来 : 你 的 意 思 是, 面 试 公 司 出 题 的 目 的 是 要 我 写 出 容 易 维 护, 容 易 扩 展, 又 容 易 复 用 的 计 算 器 程 序? 那 该 如 何 做 呀? 5
6 大 话 设 计 模 式 1.7 复 制 vs. 复 用 大 鸟 : 比 如 说, 我 现 在 要 求 你 再 写 一 个 Windows 的 计 算 器, 你 现 在 的 代 码 能 不 能 复 用 呢? 小 菜 : 那 还 不 简 单, 把 代 码 复 制 过 去 不 就 行 了 吗? 改 动 又 不 大, 不 算 麻 烦 大 鸟 : 小 菜 看 来 还 是 小 菜 呀, 有 人 说 初 级 程 序 员 的 工 作 就 是 Ctrl+C 和 Ctrl+V, 这 其 实 是 非 常 不 好 的 编 码 习 惯, 因 为 当 你 的 代 码 中 重 复 的 代 码 多 到 一 定 程 度, 维 护 的 时 候, 可 能 就 是 一 场 灾 难 越 大 的 系 统, 这 种 方 式 带 来 的 问 题 越 严 重, 编 程 有 一 原 则, 就 是 用 尽 可 能 的 办 法 去 避 免 重 复 想 想 看, 你 写 的 这 段 代 码, 有 哪 些 是 和 控 制 台 无 关 的, 而 只 是 和 计 算 器 有 关 的? 小 菜 : 你 的 意 思 是 分 一 个 类 出 来? 哦, 对 的, 让 计 算 和 显 示 分 开 1.8 业 务 的 封 装 大 鸟 : 准 确 地 说, 就 是 让 业 务 逻 辑 与 界 面 逻 辑 分 开, 让 它 们 之 间 的 耦 合 度 下 降 只 有 分 离 开, 才 可 以 达 到 容 易 维 护 或 扩 展 小 菜 : 让 我 来 试 试 看 Operation 运 算 类 public class Operation public static double GetResult(double numbera, double numberb, string operate) double result = 0d; switch (operate) case "+": result = numbera + numberb; case "-": 6
7 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 result = numbera - numberb; case "*": result = numbera * numberb; case "/": result = numbera / numberb; return result; 客 户 端 代 码 static void Main(string[] args) try Console.Write(" 请 输 入 数 字 A:"); string strnumbera = Console.ReadLine(); Console.Write(" 请 选 择 运 算 符 号 (+ - * /):"); string stroperate = Console.ReadLine(); Console.Write(" 请 输 入 数 字 B:"); string strnumberb = Console.ReadLine(); string strresult = ""; strresult = Convert.ToString(Operation.GetResult(Convert.ToDouble(strNumberA), Convert.ToDouble(strNumberB), stroperate)); Console.WriteLine(" 结 果 是 :" + strresult); Console.ReadLine(); catch (Exception ex) Console.WriteLine(" 您 的 输 入 有 错 :" + ex.message); 小 菜 : 鸟 哥, 我 写 好 了, 你 看 看! 大 鸟 : 孺 鸟 可 教 也, 写 得 不 错, 这 样 就 完 全 把 业 务 和 界 面 分 离 了 小 菜 心 中 暗 骂 : 你 才 是 鸟 呢 口 中 说 道 : 如 果 你 现 在 要 我 写 一 个 Windows 应 用 程 序 的 计 算 器, 我 就 可 以 复 用 这 个 运 算 类 (Operation) 了 大 鸟 : 不 单 是 Windows 程 序,Web 版 程 序 需 要 运 算 可 以 用 它,PDA 手 机 等 需 要 移 动 系 统 的 软 件 需 要 运 算 也 可 以 用 它 呀 7
8 大 话 设 计 模 式 小 菜 : 哈, 面 向 对 象 不 过 如 此 下 回 写 类 似 代 码 不 怕 了 大 鸟 : 别 急, 仅 此 而 已, 实 在 谈 不 上 完 全 面 向 对 象, 你 只 用 了 面 向 对 象 三 大 特 性 中 的 一 个, 还 有 两 个 没 用 呢? 小 菜 : 面 向 对 象 三 大 特 性 不 就 是 封 装 继 承 和 多 态 吗, 这 里 我 用 到 的 应 该 是 封 装 这 还 不 够 吗? 我 实 在 看 不 出, 这 么 小 的 程 序 如 何 用 到 继 承 至 于 多 态, 其 实 我 一 直 也 不 太 了 解 它 到 底 有 什 么 好 处, 如 何 使 用 它 大 鸟 : 慢 慢 来, 要 学 的 东 西 多 着 呢, 你 好 好 想 想 该 如 何 应 用 面 向 对 象 的 继 承 和 多 态 1.9 紧 耦 合 vs. 松 耦 合 第 二 天 小 菜 问 道 : 你 说 计 算 器 这 样 的 小 程 序 还 可 以 用 到 面 向 对 象 三 大 特 性? 继 承 和 多 态 怎 么 可 能 用 得 上, 我 实 在 不 能 理 解 大 鸟 : 小 菜 很 有 钻 研 精 神 嘛, 好, 今 天 我 让 你 功 力 加 深 一 级 你 先 要 考 虑 一 下, 你 昨 天 写 的 这 个 代 码, 能 否 做 到 很 灵 活 的 可 修 改 和 扩 展 呢? 小 菜 : 我 已 经 把 业 务 和 界 面 分 离 了 呀, 这 不 是 很 灵 活 了 吗? 大 鸟 : 那 我 问 你, 现 在 如 果 我 希 望 增 加 一 个 开 根 (sqrt) 运 算, 你 如 何 改? 小 菜 : 那 只 需 要 改 Operation 类 就 行 了, 在 switch 中 加 一 个 分 支 就 行 了 大 鸟 : 问 题 是 你 要 加 一 个 平 方 根 运 算, 却 需 要 让 加 减 乘 除 的 运 算 都 得 来 参 与 编 译, 如 果 你 一 不 小 心, 把 加 法 运 算 改 成 了 减 法, 这 岂 不 是 大 大 的 糟 糕 打 个 比 方, 如 果 现 在 公 司 要 求 你 为 公 司 的 薪 资 管 理 系 统 做 维 护, 原 来 只 有 技 术 人 员 ( 月 薪 ), 市 场 销 售 人 员 ( 底 薪 + 提 成 ), 经 理 ( 年 薪 + 股 份 ) 三 种 运 算 算 法, 现 在 要 增 加 兼 职 工 作 人 员 ( 时 薪 ) 的 算 法, 但 按 照 你 昨 天 的 程 序 写 法, 公 司 就 必 须 要 把 包 含 原 三 种 算 法 的 运 算 类 给 你, 让 你 修 改, 你 如 果 心 中 小 算 盘 一 打, TMD, 公 司 给 我 的 工 资 这 么 低, 我 真 是 郁 闷, 这 下 有 机 会 了, 于 是 你 除 了 增 加 了 兼 职 算 法 以 外, 在 技 术 人 员 ( 月 薪 ) 算 法 中 写 了 一 句 if ( 员 工 是 小 菜 ) salary = salary * 1.1; 那 就 意 味 着, 你 的 月 薪 每 月 都 会 增 加 10%( 小 心 被 抓 去 坐 牢 ), 本 来 是 让 你 加 一 个 功 能, 却 使 得 原 有 的 运 行 良 好 的 功 能 代 码 产 生 了 变 化, 这 个 风 险 太 大 了 你 明 白 了 吗? 小 菜 : 哦, 你 的 意 思 是, 我 应 该 把 加 减 乘 除 等 运 算 分 离, 修 改 其 中 一 个 不 影 响 另 外 的 几 个, 增 加 运 算 算 法 也 不 影 响 其 他 代 码, 是 这 样 吗? 大 鸟 : 自 己 想 去 吧, 如 何 用 继 承 和 多 态, 你 应 该 有 感 觉 了 小 菜 : OK, 我 马 上 去 写 8
9 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 Operation 运 算 类 public class Operation private double _numbera = 0; private double _numberb = 0; public double NumberA get return _numbera; set _numbera = value; public double NumberB get return _numberb; set _numberb = value; public virtual double GetResult() double result = 0; return result; 加 减 乘 除 类 class OperationAdd : Operation public override double GetResult() double result = 0; result = NumberA + NumberB; return result; class OperationSub : Operation public override double GetResult() double result = 0; result = NumberA - NumberB; return result; 加 法 类, 继 承 运 算 类 减 法 类, 继 承 运 算 类 9
10 大 话 设 计 模 式 class OperationMul : Operation public override double GetResult() double result = 0; result = NumberA * NumberB; return result; class OperationDiv : Operation public override double GetResult() double result = 0; if (NumberB==0) throw new Exception(" 除 数 不 能 为 0 "); result = NumberA / NumberB; return result; 乘 法 类, 继 承 运 算 类 除 法 类, 继 承 运 算 类 小 菜 : 大 鸟 哥, 我 按 照 你 说 的 方 法 写 出 来 了 一 部 分, 首 先 是 一 个 运 算 类, 它 有 两 个 Number 属 性, 主 要 用 于 计 算 器 的 前 后 数, 然 后 有 一 个 虚 方 法 GetResult(), 用 于 得 到 结 果, 然 后 我 把 加 减 乘 除 都 写 成 了 运 算 类 的 子 类, 继 承 它 后, 重 写 了 GetResult() 方 法, 这 样 如 果 要 修 改 任 何 一 个 算 法, 就 不 需 要 提 供 其 他 算 法 的 代 码 了 但 问 题 来 了, 我 如 何 让 计 算 器 知 道 我 是 希 望 用 哪 一 个 算 法 呢? ( 作 者 注 : 以 上 代 码 读 者 如 果 看 着 吃 力, 说 明 您 对 继 承 多 态 虚 方 法 方 法 重 写 等 概 念 的 理 解 不 够, 建 议 先 阅 读 本 书 附 录 一, 理 解 这 些 基 本 概 念 后 再 继 续 往 下 阅 读 ) 1.10 简 单 工 厂 模 式 大 鸟 : 写 得 很 不 错 嘛, 大 大 超 出 我 的 想 象 了, 你 现 在 的 问 题 其 实 就 是 如 何 去 实 例 化 对 象 的 问 题, 哈, 今 天 心 情 不 错, 再 教 你 一 招 简 单 工 厂 模 式, 也 就 是 说, 到 底 要 实 例 化 谁, 将 来 会 不 会 增 加 实 例 化 的 对 象, 比 如 增 加 开 根 运 算, 这 是 很 容 易 变 化 的 地 方, 应 该 考 虑 用 一 个 单 独 的 类 来 做 这 个 创 造 实 例 的 过 程, 这 就 是 工 厂, 来, 我 们 看 看 这 个 类 如 何 写 简 单 运 算 工 厂 类 public class OperationFactory public static Operation createoperate(string operate) 10
11 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 Operation oper = null; switch (operate) case "+": oper = new OperationAdd(); case "-": oper = new OperationSub(); case "*": oper = new OperationMul(); case "/": oper = new OperationDiv(); return oper; 大 鸟 : 哈, 看 到 了 吧, 这 样 子, 你 只 需 要 输 入 运 算 符 号, 工 厂 就 实 例 化 出 合 适 的 对 象, 通 过 多 态, 返 回 父 类 的 方 式 实 现 了 计 算 器 的 结 果 客 户 端 代 码 Operation oper; oper = OperationFactory.createOperate( + ); oper.numbera = 1; oper.numberb = 2; double result = oper.getresult(); 大 鸟 : 哈, 界 面 的 实 现 就 是 这 样 的 代 码, 不 管 你 是 控 制 台 程 序,Windows 程 序,Web 程 序,PDA 或 手 机 程 序, 都 可 以 用 这 段 代 码 来 实 现 计 算 器 的 功 能, 如 果 有 一 天 我 们 需 要 更 改 加 法 运 算, 我 们 只 需 要 改 哪 里? 小 菜 : 改 OperationAdd 就 可 以 了 大 鸟 : 那 么 我 们 需 要 增 加 各 种 复 杂 运 算, 比 如 平 方 根, 立 方 根, 自 然 对 数, 正 弦 余 弦 等, 如 何 做? 小 菜 : 只 要 增 加 相 应 的 运 算 子 类 就 可 以 了 呀 大 鸟 : 嗯? 够 了 吗? 小 菜 : 对 了, 还 需 要 去 修 改 运 算 类 工 厂, 在 switch 中 增 加 分 支 大 鸟 : 哈, 那 才 对, 那 如 果 要 修 改 界 面 呢? 11
12 小 菜 : 那 就 去 改 界 面 呀, 关 运 算 什 么 事 呀 大 鸟 : 我 们 来 看 看 这 几 个 类 的 结 构 图 大 话 设 计 模 式 运 算 类 +NumberA : double +NumberB : double +GetResult() : double 简 单 工 厂 类 +createoperate() : 运 算 类 加 法 类 乘 法 类 +GetResult() : double +GetResult() : double 减 法 类 除 法 类 +GetResult() : double +GetResult() : double 1.11 UML 类 图 小 菜 : 对 了, 我 时 常 在 一 些 技 术 书 中 看 到 这 些 类 图 表 示, 简 单 的 还 看 得 懂, 有 些 标 记 我 很 容 易 混 淆 要 不 你 给 我 讲 讲 吧 大 鸟 : 这 个 其 实 多 看 多 用 就 熟 悉 了 我 给 你 举 一 个 例 子, 来 看 这 样 一 幅 图, 其 中 就 包 括 了 UML 类 图 中 的 基 本 图 示 法 UML 类 图 图 示 样 例 12
13 UML 类 图 图 示 样 例 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 氧 气 依 赖 关 系 + 有 生 命 动 物 + 新 陈 代 谢 (in o2 : 氧 气, in water : 水 ) + 繁 殖 () 类 第 一 行 : 类 名 称 第 二 行 : 特 性 ( 字 段 或 属 性 ) 第 三 行 : 操 作 ( 方 法 或 行 为 ) 注 意 : 若 类 名 称 为 斜 体 字, 则 此 类 为 抽 象 类 水 合 成 ( 组 合 ) 关 系 聚 合 关 系 鸟 + 羽 毛 + 有 角 质 喙 没 有 牙 齿 1 2 翅 膀 雁 群 大 雁 鸭 企 鹅 关 联 关 系 + V 形 飞 行 () + 一 形 飞 行 () + 飞 () 气 候 实 现 接 口 继 承 关 系 <<interface>> 飞 翔 + 飞 () 讲 人 话 接 口 矩 形 表 示 法, 顶 端 有 <<interface>> 第 一 行 : 接 口 名 称 第 二 行 : 接 口 方 法 唐 老 鸭 + 讲 话 () 接 口 棒 棒 糖 表 示 法 圆 圈 旁 为 接 口 名 称 接 口 方 法 在 实 现 类 中 出 现 大 鸟 : 首 先 你 看 那 个 动 物 矩 形 框, 它 就 代 表 一 个 类 (Class) 类 图 分 三 层, 第 一 层 显 示 类 的 名 称, 如 果 是 抽 象 类, 则 就 用 斜 体 显 示 第 二 层 是 类 的 特 性, 通 常 就 是 字 段 和 属 性 第 三 层 是 类 的 操 作, 通 常 是 方 法 或 行 为 注 意 前 面 的 符 号, + 表 示 public, - 表 示 private, # 表 示 protected + 有 生 命 动 物 + 新 陈 代 谢 (in o2 : 氧 气, in water : 水 ) + 繁 殖 () 大 鸟 : 然 后 注 意 左 下 角 的 飞 翔, 它 表 示 一 个 接 口 图, 与 类 图 的 区 别 主 要 是 顶 端 有 <<interface>> 显 示 第 一 行 是 接 口 名 称, 第 二 行 是 接 口 方 法 接 口 还 有 另 一 种 表 示 方 法, 俗 称 棒 棒 糖 表 示 法, 就 是 唐 老 鸭 类 实 现 了 讲 人 话 的 接 口 小 菜 : 为 什 么 要 是 讲 人 话? 大 鸟 : 鸭 子 本 来 也 有 语 言, 只 不 过 只 有 唐 老 鸭 是 能 讲 人 话 的 鸭 子 小 菜 : 有 道 理 13
14 大 话 设 计 模 式 <<interface>> 飞 翔 + 飞 () 讲 人 话 接 口 矩 形 表 示 法, 顶 端 有 <<interface>> 第 一 行 : 接 口 名 称 第 二 行 : 接 口 方 法 唐 老 鸭 + 讲 话 () 接 口 棒 棒 糖 表 示 法 圆 圈 旁 为 接 口 名 称 接 口 方 法 在 实 现 类 中 出 现 interface IFly void Fly(); interface ILanguage void Speak (); 大 鸟 : 接 下 来 就 可 讲 类 与 类, 类 与 接 口 之 间 的 关 系 了 你 可 首 先 注 意 动 物 鸟 鸭 唐 老 鸭 之 间 关 系 符 号 小 菜 : 明 白 了, 它 们 都 是 继 承 的 关 系, 继 承 关 系 用 空 心 三 角 形 + 实 线 来 表 示 + 有 生 命 动 物 + 新 陈 代 谢 (in o2 : 氧 气, in water : 水 ) + 繁 殖 () 鸟 + 羽 毛 + 有 角 质 喙 没 有 牙 齿 大 鸟 : 我 举 的 几 种 鸟 中, 大 雁 是 最 能 飞 的, 我 让 它 实 现 了 飞 翔 接 口 实 现 接 口 用 空 心 三 角 形 + 虚 线 来 表 示 大 雁 + 飞 () <<interface>> 飞 翔 + 飞 () 实 现 接 口 class Bird : Animal class WideGoose : IFly 14
15 继 承 动 物 类 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 实 现 飞 翔 接 口 大 鸟 : 你 看 企 鹅 和 气 候 两 个 类, 企 鹅 是 很 特 别 的 鸟, 会 游 不 会 飞 更 重 要 的 是, 它 与 气 候 有 很 大 的 关 联 我 们 不 去 讨 论 为 什 么 北 极 没 有 企 鹅, 为 什 么 它 们 要 每 年 长 途 跋 涉 总 之, 企 鹅 需 要 知 道 气 候 的 变 化, 需 要 了 解 气 候 规 律 当 一 个 类 知 道 另 一 个 类 时, 可 以 用 关 联 (association) 关 联 关 系 用 实 线 箭 头 来 表 示 企 鹅 关 联 关 系 气 候 class Penguin : Bird private Climate climate; 在 企 鹅 Penguin 中, 引 用 到 气 候 Climate 对 象 大 鸟 : 我 们 再 来 看 大 雁 与 雁 群 这 两 个 类, 大 雁 是 群 居 动 物, 每 只 大 雁 都 是 属 于 一 个 雁 群, 一 个 雁 群 可 以 有 多 只 大 雁 所 以 它 们 之 间 就 满 足 聚 合 (Aggregation) 关 系 聚 合 表 示 一 种 弱 的 拥 有 关 系, 体 现 的 是 A 对 象 可 以 包 含 B 对 象, 但 B 对 象 不 是 A 对 象 的 一 部 分 [DPE](DPE 表 示 此 句 摘 自 设 计 模 式 ( 第 2 版 ), 详 细 摘 要 说 明 见 附 录 二 ) 聚 合 关 系 用 空 心 的 菱 形 + 实 线 箭 头 来 表 示 聚 合 关 系 雁 群 大 雁 + V 形 飞 行 () + 一 形 飞 行 () + 飞 () class WideGooseAggregate private WideGoose[] arraywidegoose; 在 雁 群 WideGooseAggregate 类 中, 有 大 雁 数 组 对 象 arraywidegoose 大 鸟 : 合 成 (Composition, 也 有 翻 译 成 组 合 的 ) 是 一 种 强 的 拥 有 关 系, 体 现 了 严 格 的 部 分 和 整 体 的 关 系, 部 分 和 整 体 的 生 命 周 期 一 样 [DPE] 在 这 里 鸟 和 其 翅 膀 就 是 合 成 ( 组 合 ) 关 系, 因 为 它 们 是 部 分 和 整 体 的 关 系, 并 且 翅 膀 和 鸟 的 生 命 周 期 是 相 同 的 合 成 关 系 用 实 心 的 菱 形 + 实 线 箭 头 来 表 示 另 外, 你 会 注 意 到 合 成 关 系 的 连 线 两 端 还 有 一 个 数 字 1 和 数 字 2, 这 被 称 为 基 数 表 明 这 一 端 的 类 可 以 有 几 个 实 例, 很 显 然, 一 个 鸟 应 该 有 两 只 翅 膀 如 果 一 个 类 可 能 有 无 数 个 实 例, 则 就 用 n 来 表 示 关 联 关 系 聚 合 关 系 也 可 以 有 基 数 的 15
16 大 话 设 计 模 式 合 成 ( 组 合 ) 关 系 鸟 + 羽 毛 + 有 角 质 喙 没 有 牙 齿 1 2 翅 膀 class Bird private Wing wing; public Bird() wing = new Wing(); 在 鸟 Bird 类 中, 初 始 化 时, 实 例 化 翅 膀 Wing, 它 们 之 间 同 时 生 成 大 鸟 : 动 物 几 大 特 征, 比 如 有 新 陈 代 谢, 能 繁 殖 而 动 物 要 有 生 命 力, 需 要 氧 气 水 以 及 食 物 等 也 就 是 说, 动 物 依 赖 于 氧 气 和 水 他 们 之 间 是 依 赖 关 系 (Dependency), 用 虚 线 箭 头 来 表 示 氧 气 动 物 依 赖 关 系 + 有 生 命 + 新 陈 代 谢 (in o2 : 氧 气, in water : 水 ) + 繁 殖 () 水 abstract class Animal public Metabolism (Oxygen oxygen,water water) 小 菜 : 啊, 看 来 UML 类 图 也 不 算 难 呀 回 想 那 天 我 面 试 题 写 的 代 码, 我 终 于 明 白 我 为 什 么 写 得 不 成 功 了, 原 来 一 个 小 小 的 计 算 器 也 可 以 写 出 这 么 精 彩 的 代 码, 谢 谢 大 鸟 大 鸟 : 吼 吼, 记 住 哦, 编 程 是 一 门 技 术, 更 加 是 一 门 艺 术, 不 能 只 满 足 于 写 完 代 码 运 行 结 果 正 确 就 完 事, 时 常 考 虑 如 何 让 代 码 更 加 简 练, 更 加 容 易 维 护, 容 易 扩 展 和 复 用, 只 有 这 样 才 可 以 真 正 得 到 提 16
17 第 1 章 代 码 无 错 就 是 优? 简 单 工 厂 模 式 高 写 出 优 雅 的 代 码 真 的 是 一 种 很 爽 的 事 情 UML 类 图 也 不 是 一 学 就 会 的, 需 要 有 一 个 慢 慢 熟 练 的 过 程 所 谓 学 无 止 境, 其 实 这 才 是 理 解 面 向 对 象 的 开 始 呢 17
新・解きながら学ぶJava
481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --
untitled
1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override
Microsoft Word - 第3章.doc
Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck
Microsoft Word - 01.DOC
第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的
詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入
100 年 特 種 考 試 地 方 政 府 公 務 人 員 考 試 試 題 等 別 : 三 等 考 試 類 科 : 資 訊 處 理 科 目 : 系 統 分 析 與 設 計 一 請 參 考 下 列 旅 館 管 理 系 統 的 使 用 案 例 圖 (Use Case Diagram) 撰 寫 預 約 房 間 的 使 用 案 例 規 格 書 (Use Case Specification), 繪 出 入
給 訪 問 員 的 話 親 愛 的 訪 問 員 您 好 : 首 先 歡 迎 您 參 加 本 次 原 住 民 族 就 業 狀 況 家 戶 訪 問 工 作 調 查 訪 問 工 作 就 好 比 自 然 科 學 領 域 裡 的 實 驗 工 作 一 樣, 是 經 驗 研 究 裡 最 基 礎 的 工 作, 對
行 政 院 原 住 民 族 委 員 會 102 年 12 月 原 住 民 就 業 狀 況 基 本 調 查 家 戶 訪 問 員 手 冊 全 國 意 向 顧 問 股 份 有 限 公 司 102 年 12 月 給 訪 問 員 的 話 親 愛 的 訪 問 員 您 好 : 首 先 歡 迎 您 參 加 本 次 原 住 民 族 就 業 狀 況 家 戶 訪 問 工 作 調 查 訪 問 工 作 就 好 比 自 然 科
!
! ! ! ! ! ! ! ! ! !! !! !! !! !! !! !! !! !! ! !"! #"! #"! #"! #"! #"! #"! #"! #"! ""! !!! ""! ""! ""! ""! ""! ""! ""! ""!
!
! ! ! ! ! ! ! ! ! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "!
Microsoft Word - 變形記
變 形 記 當 格 里 高 薩 姆 莎 從 煩 躁 不 安 的 夢 中 醒 來 時, 發 現 他 在 床 上 變 成 了 一 個 巨 大 的 跳 蚤 他 的 背 成 了 鋼 甲 式 的 硬 殼, 他 略 一 抬 頭, 看 見 了 他 的 拱 形 的 棕 色 的 肚 皮 肚 皮 僵 硬, 呈 弓 形, 並 被 分 割 成 許 多 連 在 一 起 的 小 塊 肚 皮 的 高 阜 之 處 形 成 了 一
Microsoft Word - [术数]《八卦象数与疾病预测》黄鉴.doc
八 卦 象 数 与 疾 病 预 测 黄 鉴 昆 途 易 习 园 第 1 页 共 103 页 昆 途 整 理 制 作 第 一 章 八 卦 象 数 与 疾 病 预 测 学 习 易 经 是 为 了 掌 握 宇 宙 真 理, 认 识 世 界 和 人 类 本 身 目 的 是 为 了 改 造 世 界 改 善 环 境, 利 于 人 类 " 用 " 是 目 的," 识 " 是 手 段 ; 由 " 识 " 致 " 用
第 一 章 : 從 中 共 解 放 軍 投 奔 藏 軍 棄 家 從 軍 我 原 名 姜 華 亭, 藏 名 羅 桑 扎 西, 家 在 中 國 山 東 省 萊 陽 縣 九 區 孟 格 莊 村, 父 親 叫 姜 昆, 母 親 叫 李 秀 芳 家 中 以 務 農 為 業 解 放 前 後, 父 親 曾 在 三
漢 人 羅 桑 扎 西 一 個 和 西 藏 民 族 共 患 難 的 中 共 軍 官 次 仁 旺 久 著 引 子 ------- 初 訪 漢 人 羅 桑 扎 西 下 班 了, 和 往 常 一 樣, 我 離 開 流 亡 政 府 宣 傳 部 的 辦 公 室, 行 至 大 門 口, 發 現 經 常 圍 在 左 邊 大 草 壩 上 談 笑 的 幾 個 年 輕 人 當 中, 今 天 多 了 一 個 陌 生 人,
Microsoft Word - 成长的痕迹散文集.docx
2 2 4 7 11 13 15 16 19 21 24 28 28 31 34 36 38 41 44 45 48 48 51 56 60 62 65 68 72 74 74 84 85 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Microsoft Word - 席慕容散文集.doc
1 U : " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 1 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "
<4D6963726F736F667420576F7264202D20D6D0B9FABDDAC8D5CEC4BBAF2DB5BECCEF2E646F63>
目 录 - 1 - 第 一 部 分 传 统 节 日 序 言 --------------------------------------3 春 节 --------------------------------------5 元 宵 节 --------------------------------------21 清 明 节 --------------------------------------31
七 以 自 然 風 光 為 紋 飾 第 六 章 中 國 歷 代 民 間 藏 瓷 鑒 定 術 語 第 七 章 中 國 古 瓷 文 獻 選 一 窯 器 說 ( 清 ) 程 哲 著 二 景 德 鎮 陶 歌 序 言 我 與 春 恩 先 生 相 識 經 年, 且 為 同 好, 瓷 道 摯 友 春 恩 為 人
中 國 歷 代 民 間 藏 瓷 細 說 第 一 章 中 國 歷 代 民 間 藏 瓷 一 單 色 釉 瓷 1 漢 唐 瓷 器 2 越 窯 秘 色 瓷 3 宋 代 六 大 名 窯 4 宋 元 南 北 的 青 瓷 窯 場 二 青 花 釉 瓷 1 唐 宋 青 花 瓷 2 元 代 青 花 瓷 3 明 代 青 花 瓷 4 清 代 青 花 瓷 三 彩 色 釉 瓷 1 明 代 彩 色 釉 瓷 2 清 代 彩 色 釉
<4D6963726F736F667420506F776572506F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>
程 序 设 计 实 习 INFO130048 3-2.C++ 面 向 对 象 程 序 设 计 重 载 继 承 多 态 和 聚 合 复 旦 大 学 计 算 机 科 学 与 工 程 系 彭 鑫 [email protected] 内 容 摘 要 方 法 重 载 类 的 继 承 对 象 引 用 和 拷 贝 构 造 函 数 虚 函 数 和 多 态 性 类 的 聚 集 复 旦 大 学 计 算 机 科 学
前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii
前言 C# C# C# C C# C# C# C# C# microservices C# More Effective C# More Effective C# C# C# C# Effective C# 50 C# C# 7 Effective vii C# 7 More Effective C# C# C# C# C# C# Common Language Runtime CLR just-in-time
untitled
1 Outline 料 類 說 Tang, Shih-Hsuan 2006/07/26 ~ 2006/09/02 六 PM 7:00 ~ 9:30 聯 [email protected] www.csie.ntu.edu.tw/~r93057/aspnet134 度 C# 力 度 C# Web SQL 料 DataGrid DataList 參 ASP.NET 1.0 C# 例 ASP.NET 立
EJB-Programming-4-cn.doc
EJB (4) : (Entity Bean Value Object ) JBuilder EJB 2.x CMP EJB Relationships JBuilder EJB Test Client EJB EJB Seminar CMP Entity Beans Session Bean J2EE Session Façade Design Pattern Session Bean Session
!
! ! ! ! ! ! ! ! !"# $ % & "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "! "! "! "! "! "! "! "! "! !! "! "!
KillTest 质量更高 服务更好 学习资料 半年免费更新服务
KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 70-536Chinese(C++) Title : TS:MS.NET Framework 2.0-Application Develop Foundation Version : DEMO 1 / 10 1. Exception A. Data B. Message C.
./.012.0.03/4.010 13 536
./.012.0.03/4.010 13 536 ./00.11 012./30 41 51 / 6 7 6 7 6 7 6 7 411 ./.0 1 02 " ./// 0/ 0/ 1 212 1 2 1 21 2 3 . / 0 ./01 2 2 ./01./1. 0 20.34./15./60 7 583./1. 20 0. ./ 0 01 0/ 0/ 0/ "" ./0.0000 ./ 0
./ 0123 455
./ 0123 455 ./ 0/.1 0/2 0 3 0/2 3///41.///.3/ 56 1// 0 1 0/ 2/.///./ ./ 0/ 1/ 223.//. 4 5 6/3 7/3. 4 8 591././ 7 21 :1 01 5 5// :/3 " .. / 0. /.1. / 21. / 3 4.56. 788.947 80.8 81 ./ 0/ 1/ 234 5/4 6 5 0/4.24
(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit
Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How
chp6.ppt
Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行
** 状 态 二 亚 健 康 亚 健 康 是 指 处 于 健 康 和 疾 病 两 者 之 间 的 一 种 状 态 即 机 体 内 出 现 某 些 功 能 紊 乱 但 未 影 响 到 行 使 社 会 功 能 主 观 上 有 不 适 感 觉 它 是 人 体 处 于 健 康 和 疾 病 之 间 的 过 渡
第一章! 绪! 论 斯宾塞曾说!"良好的健康状况和由之而来的愉快的情绪是幸福的最好资金# $健 康是人的成长与发展的要素#随着年龄的增加%大学生的生理和心理不断成熟%同时% 在成长的过程中身心也面临着各种问题和困惑#帮助大学生解决学习和生活中面临的 健康问题%正是健康教育的目标# 第一节!健康与健康教育 健康自古以来就是人们关心的话题%人们把健康比作人生最大的财富#随着社会 的发展和科学技术的进步%现代生活水平的提高%人们观念的转变%全民健康意识的
Mac Java import com.apple.mrj.*;... public class MyFirstApp extends JFrame implements ActionListener, MRJAboutHandler, MRJQuitHandler {... public MyFirstApp() {... MRJApplicationUtils.registerAboutHandler(this);
全国计算机技术与软件专业技术资格(水平)考试
全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明
JavaIO.PDF
O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException
Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,
http://debut.cis.nctu.edu.tw/~chi Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0, : POSITIVE_INFINITY NEGATIVE_INFINITY
<4D6963726F736F667420576F7264202D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>
全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 考 试 2009 年 上 半 年 软 件 设 计 师 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 请 按 下 述 要 求 正 确 填 写 答 题 纸 1. 在 答 题 纸 的 指 定 位 置 填 写 你 所 在 的 省 自 治 区 直 辖 市 计 划 单 列 市 的 名 称 2. 在 答
A006155 """ 明 通 "" 調 胃 承 氣 湯 濃 縮 散 " A006158 復 旦 十 神 湯 濃 縮 散 A006333 """ 明 通 "" 竹 茹 溫 膽 湯 濃 縮 散 " A006416 明 通 五 皮 飲 濃 縮 散 A006434 明 通 香 砂 六 君 子 湯 濃 縮
A002564 勝 昌 白 虎 加 人 參 湯 濃 縮 散 A002575 勝 昌 葛 根 湯 濃 縮 顆 粒 A002576 勝 昌 五 苓 散 濃 縮 顆 粒 A002578 勝 昌 小 承 氣 湯 濃 縮 散 A002895 勝 昌 葛 根 湯 濃 縮 錠 A002897 勝 昌 桂 枝 湯 濃 縮 錠 A002898 勝 昌 清 咽 利 膈 湯 濃 縮 顆 粒 A002899 勝 昌 竹 葉
A002340 """ 順 天 堂 "" 白 薇 濃 縮 顆 粒 " A002347 """ 順 天 堂 "" 萹 蓄 濃 縮 顆 粒 " A002348 """ 順 天 堂 "" 骨 碎 補 濃 縮 顆 粒 " A002349 """ 順 天 堂 "" 訶 子 濃 縮 顆 粒 " A002350
附 件 四 中 藥 用 藥 品 項 表 ( 單 方 ) 修 正 修 正 規 定 -(104/01/01) 藥 品 代 碼 A001134 """ 順 天 堂 "" 人 參 濃 縮 顆 粒 " A001135 """ 順 天 堂 "" 薤 白 濃 縮 顆 粒 " A001139 """ 順 天 堂 "" 蓮 鬚 濃 縮 顆 粒 " A001267 """ 順 天 堂 "" 瞿 麥 濃 縮 顆 粒 "
A002022 A002024 A002026 A002033 A002034 A002035 A002036 A002037 A002038 A002039 A002040 A002041 A002042 A002043 A002060 A002061 A002062 A002063 A00206
附 件 四 中 藥 用 藥 品 項 表 ( 單 方 ) 修 正 草 案 條 文 對 照 表 藥 品 代 碼 中 文 名 稱 藥 品 代 碼 中 文 名 稱 說 明 A001135 A001139 A001267 A001268 A001269 A001270 A001271 A001272 A001273 A001274 A001275 A001278 A001279 A001281 A001282
1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F
1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET 2.0 2.0.NET Framework.NET Framework 2.0 ( 3).NET Framework 2.0.NET Framework ( System ) o o o o o o Boxing UnBoxing() o
gongGaoMingCheng
银 河 稳 健 证 券 投 资 基 金 2015 年 第 4 季 度 报 告 2015 年 12 月 31 日 基 金 管 理 人 : 银 河 基 金 管 理 有 限 公 司 基 金 托 管 人 : 中 国 农 业 银 行 股 份 有 限 公 司 报 告 送 出 日 期 :2016 年 1 月 22 日 1 重 要 提 示 基 金 管 理 人 的 董 事 会 及 董 事 保 证 本 报 告 所 载
内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌
语 言 程 序 设 计 郑 莉 胡 家 威 编 著 清 华 大 学 逸 夫 图 书 馆 北 京 内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌 握 语
工银瑞信精选平衡混合型证券投资基金2008年度第2季度报告
农 银 汇 理 沪 深 300 指 数 证 券 投 资 基 金 2015 年 第 4 季 度 报 告 2015 年 12 月 31 日 基 金 管 理 人 : 农 银 汇 理 基 金 管 理 有 限 公 司 基 金 托 管 人 : 中 国 工 商 银 行 股 份 有 限 公 司 报 告 送 出 日 期 :2016 年 1 月 21 日 1 重 要 提 示 基 金 管 理 人 的 董 事 会 及 董
诗歌.doc
诗 歌 目 录 诗 歌...1 诗 歌 的 起 源...1 诗 体 概 说...1 诗 歌 主 要 有 以 下 几 部 分 :...2 诗 歌 的 由 来...10 中 国 现 代 诗 歌 理 论 源 流 和 流 派...10 主 要 流 派...16 [ 编 辑 本 段 ] 诗 歌 的 起 源 诗 歌 是 一 种 主 情 的 文 学 体 裁, 它 以 抒 情 的 方 式, 高 度 凝 练, 集 中
2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF
Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific
新版 明解C++入門編
511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,
!
!"#$ %!&! ! ! ! ! ! ! !"#$ " ! !$!"#$!%!% ! " " # $ $ % & & ( )) "! "! "! "! "! "! "! "! "! "! !! "! "! ! #" "! "! "! "! "! "! "! !! "! "! "! "! "! "! ! #" "! "! "! !! "! "! "! "! "! "! ! #" "! ! #" !
1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:
Chapter 15. Suppressed Exception CH14 Finally Block Java SE 7 try-with-resources JVM cleanup try-with-resources JVM cleanup cleanup Java SE 7 Throwable getsuppressed Throwable[] getsuppressed() Suppressed
用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應
專題進度 老師 : 趙啟時老師 學生 : 陳建廷 2013/10/13 用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應 程式碼 : package com.example.phone; import java.util.arraylist;
