OOAD 板


LINE

最近在看Head First OOA&D 他有一个例子是 Guitar GuitarSpec Inventory FindGuitar(main的所在) ========= ============= =========== ========== serialNumber builder guitars inventory price model GuitarSpec type getSerialNumber() getBuilder() addGuitar() setprice() getModel() getGuitar() getSpec() getType search() 原本search()是写成 public List search(GuitarSpec searchSpec) { List matchingGuitars = new LinkedList(); for(Iterator i = guitars.iterator(); i.hasNext(); ) { Guitar guitar = (Guitar)i.next(); GuitarSpec = guitar.getSpec(); if(searchSpec.getBuilder() != guitarSpec.getBuilder()) continue; if(searchSpec.getModel() != guitarSpec.getModel()) continue; if(searchSpec.getType() != guitarSpec.getType()) continue; matchingGuitars.add(guitar);//builder, model, type都一样的话 就加进list } return matchingGuitars; } 但是这样一来 如果GuitarSpec要加入其他特性 就必须更改Inventory.search() 所以他把两个GuitarSpec的比较 委派(delegate)给GuitarSpec 於是GuitarSpec多了下面这个method public boolean matches(GuitarSpec spec) { if(builder != spec.getBuilder()) return false; if(model != spec.getModel()) return false; if(type != spec.getType()) return false; if(backWood != spec.getBackWood()) return false; return true; } ========================================================================= 我大致上知道 通常物件是名词 而他的method则是动词 是那个物件可以做的动作 ex: Dog ====== eat() drink() sleep() 但是如果是俄罗斯方块中的 Sqare 应该是sqare 有rotate() 然後我是叫sqare自己旋转 还是说应该是player拥有roate(这个method)去旋转sqare 但是像matches应该是Inventory可以做的动作 还是Guitar可以做的动作(Guitar会自己做match??) 又 search 应该是Inventory(存货的清单)可以做的动作吗 我想问的是 我们该如果思考哪些哪些class可以有哪些method 哪些method应该是属於哪些class做的 这问题似乎与 andrew43大大 po的 "不懂如何抽离物件(初学物件导向的问题)"类似 不过我看完回文之後 仍然对於这方面 似懂非懂 是不是有方法可以有系统的design OO的架构呢 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.90.94 ※ 编辑: hsnucsc 来自: 140.113.90.94 (12/08 16:42)
1F:推 H45 :你觉得是 Player 会旋转,还是 Sqare 会旋转 XD 12/08 16:55







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灯, 水草

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

TOP