场景
一个机器有三种系统配置的类型,王大爷想设计一个计算机系统,用一个程序根据CPU和内存的情况来决定使用哪种系统配置。
结构图
setting_factory = setting_factory();
if Cpu.status == 100%:
setting_1 = setting_factory.get_setting("setting_1")
setting_1.start()
if Cpu.status == 80%:
setting_2 = setting_factory.get_setting("setting_2")
setting_2.start()
if Cpu.status == 50%:
setting_3 = setting_factory.get_setting("setting_3");
setting_3.start()
总结
意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
主要解决:主要解决接口选择的问题。
何时使用:我们明确地计划不同条件下创建不同实例时。
在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。