Magic.display();
Magic.setMagAttack(new MagFire()); Magic.performMag();
Magic.setMagAttack(new MagWater()); Magic.performMag();
Magic.setMagAttack(new MagGold()); Magic.performMag();
Magic.setPhyAttack(new PhyHand()); Magic.performPhy(); Role Nin=new Ninjia(); Nin.display();
Nin.setPhyAttack(new PhyKnife()); Nin.performPhy();
Nin.setPhyAttack(new PhySword()); Nin.performPhy();
Nin.setPhyAttack(new PhyHand()); Nin.performPhy();
Nin.setMagAttack(new MagFire()); Nin.performMag();
System.out.println(\数字媒体技术 徐鑫桥\); } }
3.测试结果:
四、实验总结:
通过本次实验,了解了基本策略模式的结构,意图以及使用效果。策略模式是一种定义一系列算法的方法,所有算法完成相同工作,但是实现不同。 每个算法都有自己的类,可以通过自己的借口单独测试,简化了单元测试。
算法和使用算法的对象相互分离,针对接口编程而非针对实现编程,把可能需要变化的代
码独立出来,组合优于继承。客户程序可以在运行时动态选择算法,代码复用性好,便于修改和维护;用组合替代继承,效果更好。消除了冗长的条件语句序列,将不同的算法硬编码进一个类中。
指导教师签名: