当前位置: 首页 > news >正文

明月 WordPress厦门seo外包公司

明月 WordPress,厦门seo外包公司,作文网址,24小时24元网站建设简单工厂(Simple Factory) 在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。 说明: 简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪…

简单工厂(Simple Factory)

在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。

说明:

简单工厂把实例化的操作单独放到一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。

这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。客户类往往有多个,如果不使用简单工厂,那么所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,例如增加子类,那么所有的客户类都要进行修改。

简单工厂模式中,一个工厂类处于对产品类实例化的中心位置上,它知道每一个产品,它决定哪一个产品类应当被实例化。这个模式的优点是允许客户端相对独立于产品创建的过程,并且在系统引入新产品的时候无须修改客户端,即在某种程度上支持“开-闭”原则。这个模式的缺点是对“开-闭”原则的支持不够,因为如果有新的产品加入到系统中,则需要修改工厂类,将必要的逻辑加入到工厂类中。

案例:

抽象产品

 * 奖品*/
public interface Prize {boolean sendGoods(String id, String count);}

产品Phone:

@Slf4j
public class Phone implements Prize{@Overridepublic boolean sendGoods(String id, String count) {log.info("发送手机开始 , id: {}, count: {}", id, count);long startTime = System.currentTimeMillis();log.info("发送手机结束 , 耗时: {}", System.currentTimeMillis() - startTime);return false;}
}

产品优惠券

@Slf4j
public class Coupon implements Prize {@Overridepublic boolean sendGoods(String id, String count) {log.info("发送优惠券开始 , id: {}, count: {}", id, count);long startTime = System.currentTimeMillis();log.info("发送优惠券结束 , 耗时: {}", System.currentTimeMillis() - startTime);return false;}
}

产品自行车

@Slf4j
public class Bicycle implements Prize{@Overridepublic boolean sendGoods(String id, String count) {log.info("发送自行车开始 , id: {}, count: {}", id, count);long startTime = System.currentTimeMillis();log.info("发送自行车结束 , 耗时: {}", System.currentTimeMillis() - startTime);return false;}
}

工厂

public enum PrizeTypeEnum {PHONE,BICYCLE,COUPON;
}public class PrizeFactory {// 生成奖品对象public static Prize getPrize(PrizeTypeEnum prizeTypeEnum) {if (Objects.isNull(prizeTypeEnum))return null;if (prizeTypeEnum.equals(PrizeTypeEnum.COUPON))return new Coupon();if (prizeTypeEnum.equals(PrizeTypeEnum.PHONE))return new Phone();if (prizeTypeEnum.equals(PrizeTypeEnum.BICYCLE))return new Bicycle();throw new RuntimeException("不存在的奖品类型");}public static void main(String[] args) {Prize prize = PrizeFactory.getPrize(PrizeTypeEnum.BICYCLE);prize.sendGoods("1","1"); }}
http://www.15wanjia.com/news/13463.html

相关文章:

  • 广东企业网站建设价格最近几天的重大新闻事件
  • 怎么做网站内容论坛推广工具
  • 网站制作的服务机构如何优化关键词提升相关度
  • 红色文创产品设计泰安网站优化公司
  • 个人网站可以做哪些内容网站建设开发价格
  • 集团做网站方案制作包含哪些方面深圳网站建设三把火科技
  • 静态网站做新闻系统微信推广平台哪里找
  • 编程培训机构加盟怎样北京网站快速优化排名
  • 湖南省网站建设企业培训权威机构
  • 大连企业网站哪一家好安徽网络seo
  • 网络小说网站推广策划方案外贸网站
  • 做网站用哪几个端口 比较好武汉网站关键词推广
  • 建立网站需要多少钱湖南岚鸿影视网站怎么优化关键词排名
  • 网站企业优化免费网站推广软件下载
  • 青岛做网站皆赴青岛博采网络产品推广的渠道
  • 网站建设 php东莞优化seo
  • WordPress文章设置时间免费旺道seo优化软件怎么用
  • 网站没有被搜索引擎收录竞价账户托管哪家好
  • 做网站公司深一套完整的运营方案
  • 网站建设中啥意思南昌seo排名收费
  • 企业网站免费源码邳州网站开发
  • vps用什么软件做网站河南网站推广优化排名
  • 网站建设最新签约北京seo公司司
  • 广东地区建网站的公司推广资讯
  • 有专门做试吃的网站吗广州网页seo排名
  • 做微信商城网站建设新产品推广方式有哪些
  • 龙岩网站建设设计服务站长网站统计
  • 两学一做注册网站吗精准防控高效处置
  • app扁平化设计网站模板seo美式
  • 郑州做网站优化地址网络维护公司