我们以开发一个简单的动作游戏为例。游戏中包含各种角色和不同的武器,一个角色拥有多种武器,但角色一次只能使用一种武器,在游戏过程中可以更换武器。我们在游戏中前期定义了以下几种角色和武器:
角色:骑士(Knight)、法师(Rabbi)、强盗(Bandit)、妖怪(Troll)
武器:宝剑(Sword)、弓箭(BowAndArrow)、匕首(Knife)、斧头(Axe)
原则一:我们要分开变化和不变化的部分,把在应用中常变化之处独立出来(指换武器),不要和那些不需要变化的代码混在一起(指角色)。
原则二:针对接口编程,而不是针对实现编程。
原则三:多用组合...
[More]