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

淘宝领券网站怎么做百度投诉中心人工电话

淘宝领券网站怎么做,百度投诉中心人工电话,阿里企业邮箱收费标准,河北网站制作公司哪家好JAVA设计模式——(九)工厂模式 介绍理解实现ProductFactory测试泛型扩展 应用 介绍 定义一个工厂类的接口,帮助一个实际对象 创建实例,并让其工厂类的子类决定实例化哪个类。 理解 工厂模式中,必定分为了两部分&…

JAVA设计模式——(九)工厂模式

  • 介绍
  • 理解
  • 实现
    • Product
    • Factory
    • 测试
    • 泛型扩展
  • 应用

介绍

定义一个工厂类的接口,帮助一个实际对象 创建实例,并让其工厂类的子类决定实例化哪个类。

理解

工厂模式中,必定分为了两部分,一部分是被工厂模式实例化的对象(Product),一部分是工厂模式的接口(Factory)。

这里主要需要注意的是一个对象,工厂类只负责一个对象的创建

实现

Product

package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 10:41* @Contact 643947568@qq.com*/
public interface Product {public void product();
}

实现类:

package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 10:41* @Contact 643947568@qq.com*/
public class ActualProduct implements Product {@Overridepublic void product() {System.out.println("生产具体的产品");}
}

Factory

package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 10:42* @Contact 643947568@qq.com*/
public interface Factory {public Product factory();}

工厂子类:

package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 10:42* @Contact 643947568@qq.com*/
public class ActualFactory implements Factory {@Overridepublic Product factory() {return new ActualProduct();}
}

测试

package cn.sh.designepattern.example01;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 10:18* @Contact 643947568@qq.com*/
public class Main {public static void main(String[] args) {ActualFactory actualFactory = new ActualFactory();Product factory = actualFactory.factory();factory.product();}
}

泛型扩展

采用泛型的工厂类

package cn.sh.designepattern.example02;import java.lang.reflect.InvocationTargetException;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 11:22* @Contact 643947568@qq.com*/
public interface Factory {public <T> T factory(Class<T> t) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException;
}
package cn.sh.designepattern.example02;import java.lang.reflect.InvocationTargetException;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 11:27* @Contact 643947568@qq.com*/
public class ActualFactory implements Factory {@Overridepublic <T> T factory(Class<T> t) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {return t.getDeclaredConstructor().newInstance();}
}

具体类1:

package cn.sh.designepattern.example02;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 11:24* @Contact 643947568@qq.com*/
public interface Product01 {public void product01();}
package cn.sh.designepattern.example02;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 11:24* @Contact 643947568@qq.com*/
public class ActualProductO1 implements Product01{@Overridepublic void product01() {System.out.println("生产01");}
}

具体类2:

package cn.sh.designepattern.example02;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 11:24* @Contact 643947568@qq.com*/
public interface Product02 {public void product02();}
package cn.sh.designepattern.example02;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 11:24* @Contact 643947568@qq.com*/
public class ActualProductO2 implements Product02 {@Overridepublic void product02() {System.out.println("生产02");}
}

测试:

package cn.sh.designepattern.example02;import java.lang.reflect.InvocationTargetException;/*** @Author song* @Version 0.0.1* @Date 2025/4/29 11:28* @Contact 643947568@qq.com*/
public class Main {public static void main(String[] args) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {ActualFactory actualFactory = new ActualFactory();ActualProductO1 productO1 = actualFactory.factory(ActualProductO1.class);productO1.product01();ActualProductO2 productO2 = actualFactory.factory(ActualProductO2.class);productO2.product02();}
}

应用

上述的工厂模式是一个简单的工厂模式,每次需要对具体类均创建一个工厂类,所以适用性单一。当然也有采用泛型的工厂方法,能够适用较多的场景。

可用于对对象的封装,降低模块的耦合度,因为不需要知道具体类的实现细节,即使具体类的实现改变,也只需要修改具体的工厂类方法,所以有较好的扩展性

http://www.dtcms.com/wzjs/181104.html

相关文章:

  • 单招网站开发基础知识seo搜索引擎优化招聘
  • 做网站送的小程序有什么用济南网站建设
  • 保定免费网站制作求职seo
  • 专门做网站的公司与外包公司网络营销有哪些方式
  • 企业网站营销常用的方法北京seo经理
  • 廊坊免费推广湖南有实力seo优化
  • 镇江网站建设要多少钱教育机构退费纠纷找谁
  • 做配单ic去什么网站好互联网营销师报名
  • 做游戏攻略网站赚钱吗平台app开发制作
  • 广西柳州住房和城乡建设局网站关键词排名怎么做好
  • 网站开发建设与维护海南百度推广公司
  • wordpress 简书模板济南网站万词优化
  • 门户网站建站注意事项谷歌seo关键词排名优化
  • 网站seo诊断评分45汕头seo优化项目
  • 淘客网站要备案无锡网站建设优化公司
  • 做网站的关键性技术有哪些宝鸡seo
  • 做期货关注什么网站网站怎么注册
  • 福州日语网站建设网店运营实训报告
  • 彩票网站是静态动态网站优化员seo招聘
  • 南宁会员网站制作如何做外贸网站的推广
  • ppt兼职接单平台seo建站平台哪家好
  • 怎样做网站流量统计网站seo优化皆宣徐州百都网络不错
  • 南京建设网站多少钱上海百度推广官网
  • 做网站要学多久百度域名提交收录网址
  • 网站设计上海短链接购买
  • 定制一个网站多少钱头条收录提交入口
  • 汕头哪里做网站b2b免费推广网站
  • 李笑来做的一个网站谷歌优化排名公司
  • 教育类网站建设方案天津百度爱采购
  • 做网站有钱深圳百度seo怎么做