Re: [概念] 中介者模式的疑问

楼主: H45 (!H45)   2012-02-20 23:31:39
※ 引述《tyc5116 (累人啊....)》之铭言:
: 如题,这是我看书想到的一个问题
: 我拿书上的题目来说,有四个class,分别是采购(Purchase),库存(Stock),销售(Sale)
: 以及一个中介者(Mediator)(不把虚拟的算进去的话)
: 彼此是有关联性的,哪一天突然发现有bug,或想重构,或要修改功能,该怎么下手呢?
: 我的问题点在于,以debug来说,假设我觉得Sale部份可能有问题
: 有办法在过程中,先将Sale和其它class的关联性切开,再除错吗?
: 又或者哪天我觉得Mediator很乱了,要进行重构,可是有关联性的class很多
: 有办法将Stock和Purchase切开,对Mediator与Sale相关的程式码重构
: 再依此类推,连接Sale,切开Stock,Purchase,重构
: 连接Purchase,切开Sale,Stock,重构.....
: 若这个观念是不对的,麻烦请指正,若这观念可行,麻烦请说明一下实作的方向
: 谢谢
详细完整的回答请看上一篇qrtt1的文章,我这篇只是应着推文简单回复一下
如有误还请各位先进指教。
以您原文的需求来看,问题点似乎是如何针对已经做好Mediator Pattern的类别Debug
以我目前的作法是:
1. 先写 Unit Test Case,测试 Mediator、Purchase、Stock、Sale 四个实体类别
2. 当 Test Unit 报告有 Assertion Fail 的时候
2.1 使用好的 Debugger 一步一步追踪除错
2.2 使用好的 Logger 倾印所有变量在执行期的变化
3. 发现发生错误的程式码之后,修正他,回到 2 直到全测试通过为止。
所以您说,‘有办法在过程中,先将Sale和其它class的关联性切开,再除错吗?’
除非您找得到 Sale 和 Mediator 两者没有关联的部分做独立测试与除错,否则切开是
没有意义的,因为 Sale 的运作是否正确,和 Mediator 有很强的关联性,所以说,整
个除错的过程必须包含 Sale 与 Mediator 两者有相关的部分,无法完全切开。
后面你说能不能将 Stock 和 Purchase 切开也是一样的道理:只能针对无关联的部分做
测试除错,其他有关联部分仍然不可切开。

Links booklink

Contact Us: admin [ a t ] ucptt.com