C_Sharp 板


LINE

各位学长好 我是自学C#的新手 目前在读无瑕的程式码 敏捷完整篇 C# 在第二十章咖啡的启事中有一个疑惑 因为贴网址被判断是广告 请各位学长在GOOGLE搜寻一下 『敏捷软件开发:原则、模式与实践——第20章 咖啡的启示 JesseLZJ』 第一个就是了,里面有这一章的完整内容 他在CoffeeMaker.cs中有一行 CoffeeMakerAPI api = new M4CoffeeMakerAPI(); 但他并没有M4CoffeeMaker这个类别 而CoffeeMakerAPI 是一个介面 所以如果直接CoffeeMakerAPI api = new CoffeeMakerAPI(); 则会显示不能建立介面的物件这个错误 但後面的 M4UserInterface ui = new M4UserInterface(api); M4HotWaterSource hws = new M4HotWaterSource(api); M4ContainmentVessel cv = new M4ContainmentVessel(api); 都需要CoffeeMakerAPI来做为建构子建立 到这里我就混乱了 这是因为版本的差异吗? 还是书本内容错误呢? 如果我要使用CoffeeMakerAPI来作为其他物件的建构子 那我应该要怎麽做呢? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.125.120.238 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1573797523.A.F70.html ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 14:17:52
1F:推 O2000: 自己写一个实作CoffeeMakerAPI的M4CoffeeMaker类别呀 11/15 14:48
我也有想过要这麽做 但里面的 WarmerPlateStatus GetWarmerPlateStatus(); 或者是 void SetWarmerState(WarmerState s); 虽然有尝试要实作,但自己弄了一下都没办法成功 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 14:58:18
2F:推 TPNEW: public class M4CoffeeMaker : CoffeeMakerAPI 11/15 15:00
首先我发现我并不了解 WarmerPlateStatus GetWarmerPlateStatus(); 这个是具体来说是什麽 只知道从其他的程式码来看 如果呼叫他,可以得到目前WarmerPlateStatus的状态 但他又不像是属性的get、set结构 而 void SetWarmerState(WarmerState s); 从其他程式码来看,他可以将 他可以将呼叫这个方法的引数写入WarmerState内 例如将enum WarmerState变更成OFF等等 (但WarmerState是enum,这个状态又是存在何处?) 但他是如何运作的,以及我要如何实作我并不晓得 还请各位前辈指点一下 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 15:15:13 不好意思我打错了,是 CoffeeMakerAPI api = new M4CoffeeMakerAPI(); 而非 CoffeeMakerAPI api = new M4CoffeeMaker(); 已修正 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 15:16:59
3F:推 TPNEW: 我没看过书 不过他那样写就是要M4CoffeeMakerAPI 继承介面 11/15 15:21
又尝试了一下 如果是一般的属性还是方法还能实作 但这个CoffeeMakerAPI就是没办法实作出来 学长们救命啊 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 15:51:27
4F:推 TPNEW: CoffeeMakerAPI api = new CoffeeMakerAPI(); 11/15 15:55
5F:→ TPNEW: 你这行可以过吗? 11/15 15:55
不行,出现 无法建立抽象类别或介面 'CoffeeMakerAPI' 的执行个体 这个错误 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 15:59:35
6F:推 TPNEW: 我打错了CoffeeMakerAPI api = new M4CoffeeMakerAPI(); 11/15 16:13
如果没有pubil class M4CoffeeMakerAPI:CoffeeMakerAPI 会显示找不到M4CoffeeMakerAPI 如果有pubil class M4CoffeeMakerAPI:CoffeeMakerAPI 则会出现需要实作CoffeeMakerAPI 最终还是卡在需要实作的部分 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 16:21:27
7F:推 TPNEW: CoffeeMakerAPI api = new M4CoffeeMakerAPI(); 11/15 16:32
8F:→ TPNEW: M4UserInterface ui = new M4UserInterface(api); 11/15 16:32
9F:→ TPNEW: M4HotWaterSource hws = new M4HotWaterSource(api); 11/15 16:32
10F:→ TPNEW: M4ContainmentVessel cv = new M4ContainmentVessel(api); 11/15 16:32
11F:→ TPNEW: 这四行一起 你只差在M4CoffeeMakerAPI 的内容 11/15 16:33
是的,现在就差M4CoffeeMakerAPI实作不出来 WarmerPlateStatus GetWarmerPlateStatus(); 这是一个方法 那我要实作的话应该要 public WarmerPlateStatus GetWarmerPlateStatus() { retrun ... } 我不知道要叙述什麽 才能让他做到GetWarmerPlateStatus的功能 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 16:37:43
12F:推 TPNEW: 现在是不懂实做该做甚麽吗? 11/15 16:37
是的 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 16:37:57
13F:推 TPNEW: 我没看书可能有点浪费你的时间XD 11/15 16:43
14F:→ TPNEW: 实作看自己需求吧 还是书中有最後的结果需要达到? 11/15 16:43
15F:推 TPNEW: WarmerState在M4CoffeeMaker里面自己建立起来存 11/15 16:47
16F:→ TPNEW: 实作自己想怎麽做就怎麽做 11/15 16:48
不会不会,有讨论就有思考 我之前是想说是不是有地方可以让我抓WarmerState的目前状态 (因为咖啡机应该有外部SENSOR可以提供资讯) 所以我一直卡在要去哪边获得资讯 现在换了个思考方向 我现在是趋向在M4CoffeeMakerAPI中建立一个属性 用来给他们SET、GET存放现在状态 不知道这样是否可行就是了 他完全没有解释让我觉得有点困扰 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 16:58:39
17F:推 TPNEW: 满足需求就好 11/15 16:59
嗯,我猜想书中的M4CoffeeMakerAPI 会不会用来取得外部I/O状态的一个类别 所以我打算用属性来模拟I/O状态 用来满足他的需求 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 17:02:24
18F:→ TPNEW: 刚学程式的时候也是会这样XD 11/15 17:00
哈哈,刚学的时候有很多思考方式都要改 现在可以了 为各个方法设定属性之後 再分别给他们GET、SET的方法就可以通过编译了 只是这个做法不知道是不是正确的就是了 ※ 编辑: berice152233 (59.125.120.238 台湾), 11/15/2019 17:17:29
19F:推 Litfal: 无瑕XD为什麽光是命名就让我头痛了 11/16 01:21
20F:→ samchung: P.288 有提供测试案例的程式码,可参考里面的写法 11/16 01:48
21F:→ samchung: 把 CoffeeMakerStub 类别和建构子改成 M4CoffeeMakerAPI 11/16 01:48
22F:→ samchung: 然後整段加到你的范例里试试看 11/16 01:48
23F:→ samchung: 整段是只那一整个类别喔,一直到 P.289 的中间为止 11/16 01:53
24F:→ samchung:    指     ↖(已改名的 CoffeeMakerStub 类别) 11/16 01:55
25F:→ berice152233: 好的,我礼拜一上班时试试看 11/16 10:14
26F:→ berice152233: 我已经看了P288的内容了,的确就是我要的实作内容 11/19 11:10
27F:→ berice152233: ,感谢 11/19 11:10
28F:推 aup3gj: 我知道这本书,主管上个月丢在我桌上要我看,到现在还没碰 11/30 14:02
29F:推 nickboy: 实做M4CoffeeMakerAPI就好,现在是需求问题不是技术问题 12/06 17:05







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

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

TOP