怎么做网站海外运营推广,培训型网站建设方案,东营建设信息网官网查询,什么都不会怎么做网站#x1f50d;目的 为创建一个对象定义一个接口#xff0c;但是让子类决定实例化哪个类。工厂方法允许类将实例化延迟到子类 #x1f50d;解释 真实世界例子 铁匠生产武器。精灵需要精灵武器#xff0c;而兽人需要兽人武器。根据客户来召唤正确类型的铁匠。 通俗描述 它为类…目的 为创建一个对象定义一个接口但是让子类决定实例化哪个类。工厂方法允许类将实例化延迟到子类 解释 真实世界例子 铁匠生产武器。精灵需要精灵武器而兽人需要兽人武器。根据客户来召唤正确类型的铁匠。 通俗描述 它为类提供了一种把实例化的逻辑委托给子类的方式。 维基百科 在基于类的编程中工厂方法模式是一种创建型设计模式用来解决创建对象的问题而不需要指定将要创建对象的确切类。这是通过调用工厂方法创建对象来完成的而不是通过调用构造器。该工厂方法在接口中指定并由子类实现或者在基类实现并可以选择由子类重写。 程序示例
以上面的铁匠为例创建铁匠的接口和一些它的实现。
public interface Blacksmith {Weapon manufactureWeapon(WeaponType weaponType);
}public class ElfBlacksmith implements Blacksmith {public Weapon manufactureWeapon(WeaponType weaponType) {return ELFARSENAL.get(weaponType);}
}public class OrcBlacksmith implements Blacksmith {public Weapon manufactureWeapon(WeaponType weaponType) {return ORCARSENAL.get(weaponType);}
}现在随着客户的到来会召唤出正确类型的铁匠并制造出要求的武器。
var blacksmith new ElfBlacksmith();
blacksmith.manufactureWeapon(WeaponType.SPEAR);
blacksmith.manufactureWeapon(WeaponType.AXE);
// Elvish weapons are created类图 Factory Method pattern class diagram
适用场景 使用工厂方法模式 一个类无法预料它所要必须创建的对象的类一个类想要它的子类来指定它要创建的对象类将责任委派给几个帮助子类中的一个而你想定位了解是具体之中的哪一个 Ending 在Factory Method模式中通常有一个抽象的工厂类和多个具体的工厂子类每个具体工厂子类负责创建特定类型的对象。这样客户端代码可以通过与抽象工厂类交互而不需要关心具体的对象是如何创建的。 希望本文能够帮助读者更深入地理解工厂方法模式并在实际项目中发挥其优势。谢谢阅读 希望这份博客草稿能够帮助到你。如果有其他需要修改或添加的地方请随时告诉我。