java 板


LINE

※ 引述《[email protected] (foolish)》之铭言: : ※ 引述《[email protected] (wctang)》之铭言: : > Timer 是排程器,TimerTask 是被排程的对象,表示要执行的工作 : > 这种分别可以达成如同一个工作在不同时间被叫起这样的用法 : > 如果要说有什麽设计观点,那或许可以算个最简单的 Template Method 吧@@ : > BTW, 比较复杂的情况应该要用 quartz. : 昨天稍为"看"了一下新买的Head First Design Pattern的第一章 : 好像就是这个样子了XD : 我觉得他应该是strategy pattern : 分享一下读书心得 >///< : strategy pattern在书中放第一章做为起点 : 感觉上很明白并强烈地提示初学者design pattern的大原则 : 把变动与不变动的部分"分开" : 将变动的部分封装起来,即使将来需要有所变动 : 也不会影响使用个"已被封装"的演算法的主体 : TaskTimer就是变动的部分 : 他里面怎麽实作Timer是不去里会的, : 因为对Timer来说要执行的任务已经封装在TaskTimer里 : 只是透过TaskTimer这一种介面(这里不是指语法上的interface) : 来执行任务(演算法) : 清楚划分,变动与不变动的部分。使得程式更容易维护与扩充。 从以前到现在, 对於 Template Method、Strategy、Command 这三个 pattern, (或许再加个State?) 我一直觉得他们概念相当接近, 实务上也常可以混用. 让我常常分不清楚我的实作(或看到的实作)究竟该归类在那个 pattern. 不过根据我的理解, 我认为 Timer跟TaskTimer 归类於 Command 会比较恰当. ===================== Template Method : 若一个流程(演算法)有固定几个可抽换的步骤, 实作其骨架. 如下 : public foo() { random(...) ; // ... sort(...) ; // ... print(...) ; } 要举实例的话, 可以看 org.apache.struts.action.RequestProcessor.process(...) 其中的各部分实作都是未来可以在子类别中抽换的. 像 processRoles(...) ====================== Strategy 针对处理对象的特性, 采用不同的方式实作, 传统做法为 if ... else if ... else if ... else ... Strategy 对各种处理方式找出统一的介面, 并分别写成不同的类别. 如排序实作, 就可以写 MergeSort, BubbleSort, QuickSort 等不同类别. 根据资料特性, 我们可以选用不同的策略处理排序 (可能搭配一些Creational Patterns) 所以执行者会针对处理对象, 取得适当的 Strategy 物件, 并加以执行. ======================= Command 把包含command的物件, 交付给特定对象负责执行. 执行者并不会考虑个别 Command 的内容. -- BBS 赌徒的 一日生活: PO文 ─> P币收入 ─> 赌博 ─┬───> 赤贫 ─╮ ︿ ︿ │ 输球 │ │ │ 赢球│ │ │ ╰────────╯ │ ╰───────────────────────╯ --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.92.57.92







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP