义乌网站建设托管,大型网站开发软件,北京企业建网站公司,北京保障性住房建设投资中心网站netflix 模式创新以前#xff0c;我们对创建模式进行了介绍#xff0c;并使用抽象工厂模式来创建对象族。 下一个模式是Factory模式 。 当涉及到Java时#xff0c;工厂模式是最常用的模式之一。 那么工厂模式到底是什么呢#xff1f; 工厂模式处理创建对象而不指定确切的… netflix 模式创新 以前我们对创建模式进行了介绍并使用抽象工厂模式来创建对象族。 下一个模式是Factory模式 。 当涉及到Java时工厂模式是最常用的模式之一。 那么工厂模式到底是什么呢 工厂模式处理创建对象而不指定确切的类或将要创建的对象。 让我们通过使用工厂模式解决凭证问题来付诸行动。 假设我们在应用程序中具有忠诚度功能该功能会根据客户的交易向客户提供一些优惠券。 凭证需要凭证代码并且由于它将显示在应用程序中因此需要特殊格式的html消息。 第一步是创建凭证界面。 package com.gkatzioura.design.creational.factory;public interface Voucher {public String code();public String htmlMessage();
} 目前我们将提供两种类型的凭证但是一旦业务人员提出了更多的想法就可以轻松添加更多的凭证。 第一个是食品券。 package com.gkatzioura.design.creational.factory;import java.util.UUID;public class FoodVoucher implements Voucher {private UUID code;private static final String htmlMessage htmlbody
h1Food Voucher/h1/body/html;public FoodVoucher() {code UUID.randomUUID();}public String code() {return code.toString();}public String htmlMessage() {return htmlMessage;}
} 第二个是衣服券。 package com.gkatzioura.design.creational.factory;import java.util.UUID;public class ClothesVoucher implements Voucher {private UUID code;private static final String htmlMessage htmlbody
h1Clothes Voucher/h1/body/html;public ClothesVoucher() {code UUID.randomUUID();}public String code() {return code.toString();}public String htmlMessage() {return htmlMessage;}
} 凭单将基于交易点系统创建。 如果交易点少于30个则将创建食品券。 对于高于30的交易点应创建服装代金券。 因此下一步是创建一种机制该机制将基于交易点创建凭证。 最好的选择是工厂模式。 package com.gkatzioura.design.creational.factory;public class VoucherFactory {public Voucher create(Integer discountPoints) {if(discountPoints0) {throw new IllegalArgumentException(Invalid number of discount points!);}if(discountPoints30) {return new FoodVoucher();} else {return new ClothesVoucher();}}} 通过选择工厂模式进行总结 我们创建所需的凭证而不会向客户透露任何创建逻辑。 客户端不必指定将要创建的对象的确切类。 您可以在github上找到源代码。 在下一篇博客文章中我们将介绍构建器模式 。 另外我还编写了备忘单其中包含“创作设计模式”的摘要。 在链接中注册以接收它。 翻译自: https://www.javacodegeeks.com/2018/03/creational-design-patterns-factory-pattern.htmlnetflix 模式创新