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

相关文章:

  • 最大的外包公司有哪些seo排名优化课程
  • 哪个网站推荐做挖机事的国家卫生健康委
  • 中国建设教育协会是个什么网站游戏app拉新平台
  • 西安哪家网站建设公司好可以下载新闻视频的网站
  • 做设计赚钱网站有哪些高端网站定制公司
  • 哪个网站做轴承外贸的人比较多软文范文大全
  • 山东网站制作策划教育培训机构官网
  • 漳州网站建设指数搜索
  • 中国做趋势的网站广州头条新闻最新
  • 可以做网站互联网营销师证书有用吗
  • 网站搭建计划书360关键词排名推广
  • 新昌做网站关键词提取
  • 福州晋安区建设局网站做seo推广一年大概的费用
  • 韵达快递小网站怎么做seo网站分析报告
  • 门户网站建站注意事项百度爱采购官网
  • wordpress 网购重庆公司网站seo
  • 合肥 网站平台建设公司桂林市天气预报
  • 制作网站需要用什么软件上海野猪seo
  • 安徽省工程建设项目信息网长沙seo网站排名优化公司
  • 淄博网站制作哪家好公司营销策划方案
  • 资源分享网站怎么做兰州seo整站优化服务商
  • 成都房产网站建设宁波优化seo是什么
  • 做一个简单网站爱站网关键字挖掘
  • H5建网站天津百度seo代理
  • h5网站怎么访问网站seo排名优化工具在线
  • 哪些网站上推广比较好西安seo服务商
  • 太原建站网站模板seo研究中心道一老师
  • 网站找人做seo然后网站搜不到了好的产品怎么推广语言
  • 上海网站建设 知名觉谷歌独立站推广
  • 网站设计登录界面怎么做重庆百度搜索优化