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

广州建设网站怎么做职业生涯规划大赛是干什么的

广州建设网站怎么做,职业生涯规划大赛是干什么的,赣州培训学做网站,常用网站开发语言优缺点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/a/560290.html

相关文章:

  • 设计网站vcgwordpress电子商务主题下载
  • vue seo 优化方案seo群发软件
  • 天津做国外网站澄城县城乡建设局网站
  • 做转发赚钱的网站oa网站建设价格
  • 北京网站设计制作网站天津做网站要多少钱
  • 小米果怎么做视频网站公司网站建设的请示
  • 二级网站怎么做做网站开发 用的最多的语言
  • 怎么做网站点击率监控工具东莞网站建设设计公司
  • 移动网站开发培训如何建立一个网站来卖东西
  • 成都网站建设公司创新互联做seo哪些网站会好点
  • 图书管理系统网站开发西昌网站建设公司
  • 淘宝客网站返利程序昆明商城网站开发
  • 大兴网站建设服务公司包头网站开发建设
  • 河南省建设厅网站 吴浩网络营销工具中
  • 自己开发一个网站多少钱阳江网红打卡景点
  • 网站信息抽查评估网站建设公司国内技术最强
  • 亿唐微方网站建设杭州建设工程网
  • 建设网站服务器怎么弄网店运营管理与营销推广
  • 汕头网站建设设计公司淘宝客网站静态还是动态好
  • 各大网站rss订阅源地址9158个人空间登录
  • 删负面的网站中小企业网站建设开题报告
  • 百度推广移动端网站大兴网站定制开发
  • 太原谁家网站做的好在线设计平台市场环境
  • 城乡建设部网站 挂证域名的申请及注册流程
  • 咨询网站公司建设计划书网站建设和实现论文
  • 网站建设使用的什么软件网站设计技术文章
  • dw做静态网站百度seo关键词排名优化软件
  • 网站策划专员所需知识主要的cms系统有哪些
  • 泉州seo网站推广威海网站设计公司
  • 一流的微商城网站建设网站建设的会计分录