我们有一个HeroFactory工厂,这个工厂可以生产不同类型的(兽族、精灵族)Mage(魔法师)、Warlord(军队)、 * Beast(兽王),只是这些类型的产物在工厂中都不是直接New出来的,而是采用原型模式通过已有类型对象clone出来的。 */ @Slf4j public class App { public static void main(String[] args) { HeroFactory factory = new HeroFactoryImpl( new ElfMage("做饭"), new ElfWarlord("打扫"), new ElfBeast("站岗") ); Mage mage = factory.createMage(); Warlord warlord = factory.createWarlord(); Beast beast = factory.createBeast(); LOGGER.info(mage.toString()); LOGGER.info(warlord.toString()); LOGGER.info(beast.toString()); factory = new HeroFactoryImpl( new OrcMage("锤"), new OrcWarlord("剑"), new OrcBeast("激光") ); mage = factory.createMage(); warlord = factory.createWarlord(); beast = factory.createBeast(); LOGGER.info(mage.toString()); LOGGER.info(warlord.toString()); LOGGER.info(beast.toString()); } }