C#墨攻IOC
原文叫看《墨攻》理解IOC概念 2006年多部贺岁大片以让人应接不暇的频率纷至沓来,其中张之亮的《墨攻》算是比较出彩的一部,讲述了战国时期墨家人革离帮助梁 国反抗赵国侵略的个人英雄主义故事,恢宏壮阔,浑雄凝重的历史场面相当震撼。其中有一个场景:当刘德华所饰的墨者革离到达梁国都城 下,城上梁国守军问:“来者何人?”,刘德华回答:“墨者革离!”,我们不妨用C#(原文是java,我修改)对这段“城门问对”的场景进行编剧并借由这个例子来理解IoC的内涵。 剧本和饰演者耦合 MoAttack代表《墨攻》的剧本,cityGetAsk()代表“城门问对”这段剧情,LiuDeHua是具体饰演者刘德华: 代码清单1 public class MoAttack { public MoAttack() {} public void cityGateAsk(){ LiuDeHua ldh = new LiuDeHua(); ① 演员直接侵入剧本 ldh.responseAsk("墨者革离!"); } } 我们会发现以上剧本在①处,作为具体饰演者的刘德华直接侵入到剧本中,使剧本和演员直接耦合在一起: 图(1)剧本与演员直接耦合 一个明智的编剧在剧情创作时应围绕故事的角色进行,而不应考虑角色的具体饰演者,这样才可能在剧本投拍时自由地选择任何适合的演员,而非绑定在刘德华一人身上。通过以上的分析