本程序案例通过武器生产管理系统演示简单工厂模式设计方法。第三行定义抽象产品类Weapon;第8、15行定义具体产品类MachineGun和Pistol;第21行定义工厂类;第23行定义方法cretWeapon(String name),参数name表示生产的武器名,根据name返回具体武器实例对象;第41行通过参数“手枪”生产手枪对象;第44行通过参数名“机关枪”生产机关枪对象。
小结:该程序案例解决了武器生产管理系统的两个问题:
一、程序员通过武器名能实例化武器对象,减轻程序员记忆子类的负担。
二、利用简单工厂模式生产武器,而不是在客户端直接生产,解耦了定义与应用,增加程序灵活性。