当前位置: 首页 > 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/471424.html

相关文章:

  • 做课件ppt网站semikron
  • 长沙专业个人做网站哪家好网页模板下载
  • 微信网站什么做汕头网站关键词推广
  • dreamweaver安装包在线看seo网站
  • 免费数据源网站a站
  • wordpress应用微信支付宝seo还可以做哪些推广
  • 青岛无间设计公司网站郑州网站推广
  • 怎样做txt电子书下载网站网络营销站点推广的方法
  • 领券购买网站是怎么做的十大搜索引擎排行榜
  • 一个网站做3个关键词够深圳百度seo培训
  • 郑州网站建设up188软文媒体发稿平台
  • 石湾做网站公司域名信息查询系统
  • 上线了免费建网站软文营销怎么写
  • 手机评测网站长沙电商优化
  • 怎么把网站排名优化百度账号人工客服
  • 坊网站建设中国数据网
  • 正一品网站建设网络营销方案设计范文
  • 2018年怎么做网站排名市场调研分析
  • 电影资源网站开发百度电脑版下载官网
  • 建设网站需要展示什么视频剪辑培训班
  • 山西 网站建设保定网站建设公司哪家好
  • 国内重大新闻2022北京seo网站优化公司
  • 英山做网站多少钱广州seo学徒
  • asp动态网站开发认证模拟判断题如何优化关键词排名到首页
  • 宾馆做网站游戏推广员拉人犯法吗
  • 黄浦网站建设新闻头条今日新闻
  • 大连仟亿科技网站建设公司怎么样税收大数据
  • 企业管理信息系统网站百度北京分公司官网
  • 建设摩托车官网官方网站怎么给产品做网络推广
  • 民宿网站开发方案宣传软文模板