java 创建简单工厂模式详解编程语言
2023-06-13 09:11:49 时间
* 定义一个环境接口,所有省治理环境的方式都实现这个接口,并重写治理环境的方法
* @author tong
public interface Environmental {
public void governanceEnvironment();
}
public void governanceEnvironment() { System.out.println("【天津市治理环境的方法】"); }
public void governanceEnvironment() { System.out.println("【河北省治理环境的方法】"); }
2.实现类
package com.zpark.service.impl;
public void governanceEnvironment() { System.out.println("【北京市治理环境的方法】"); }
public void governanceEnvironment() { System.out.println("【天津市治理环境的方法】"); }
public void governanceEnvironment() { System.out.println("【河北省治理环境的方法】"); }
3、简单工厂类
package com.zpark.utils;
public class EnvironmentalSimpleFactory { //根据参数创建对象,这是一个静态方法可以直接使用类名调用 public static Environmental createSalary(String name) { Class Environmental clazz = null; Environmental salary = null; try { //利用反射机制获取该参数对应的类的对象 clazz = (Class Environmental ) Class.forName(name); //使用此类对象创建对应的环境类对象,这里使用父类指针指向子类对象,实现了多态 salary = (Environmental)clazz.newInstance(); }catch (Exception e) { e.printStackTrace(); return salary; }
4、测试方法
package com.zpark.test; import org.junit.Test; * @author ceshi * @Title: ${file_name} * @Package ${package_name} * @Description: ${todo} * @date 2018/6/818:53 public class EnvironmentalJunitTest { @Test public void test(){ //创建Client对象,以此对象调用computeSalary()方法传入要类型参数 new EnvironmentalJunitTest().computeSalaryEnvironmental("com.zpark.service.impl.BeijingEnvironmental"); new EnvironmentalJunitTest().computeSalaryEnvironmental("com.zpark.service.impl.HebeiEnvironmental"); new EnvironmentalJunitTest().computeSalaryEnvironmental("com.zpark.service.impl.TianjinEnvironmental"); /** * 根据传入的参数调用工厂类的创建环境治理方法,创建不同的薪资对象 * @param name public void computeSalaryEnvironmental(String name) { //这里使用多态,根据传入参数的不同,生成ZhejiangSalary或者HebeiSalary对象 Environmental environmental = EnvironmentalSimpleFactory.createSalary(name); //使用生成的对象动态调用具体类对象的方法 environmental.governanceEnvironment(); }
5.测试结果
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/18547.html
cgojava相关文章
- java怎么调用.asmx_Java调用Webservice(asmx)的例子
- java单例模式_Java单例模式
- 在线学习Java的几个网站,别再盲目学习java了![通俗易懂]
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java后台怎么解密md5,Java md5 密码加解密
- java jersey使用总结_jersey Java Jersey配置「建议收藏」
- Java设计模式之策略模式
- 量化合约开发功能JAVA编程源码教程
- Java Activiti6.0 spring5 SSM 工作流引擎 审批流程 java项目框架详解编程语言
- Java实现在访问者模式中使用反射详解编程语言
- 一个简单的Java MVC模式示例详解编程语言
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- Java学习笔记之四java进制转化详解编程语言
- Java学习笔记之一java关键字及作用详解编程语言
- java中用枚举类实现单例模式详解编程语言
- Java设计模式之装饰模式详解编程语言
- Java 简单工厂模式详解编程语言
- Java设计模式之单例模式详解编程语言
- Java单例模式详解编程语言
- MySQL与Java的强强联合:开启智能数据库时代(mysql和java)
- Java问题-java进程占用内存过高,排查原因详解编程语言
- Java面试中的Redis题目剖析(java面试题redis)
- Java程序构建Oracle数据库直连(java直连oracle)
- Java与Oracle同步一种新的数据库模式(java同步oracle)
- 项目Java项目中展现Redis新型性能优势(redis运用在java)