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

广州网站建设培训学校常州天启建设公司网站

广州网站建设培训学校,常州天启建设公司网站,万江东莞网站建设,网站开发项目预算表前言 1.工厂模式概念 实例化对象#xff0c;用工厂方法代替new操作(重点) 工厂模式包括工厂方法模式和抽象工厂模式 抽象工厂模式是工厂方法模式的扩展 2.什么情况下适合工厂模式 有一组类似的对象需要创建 在编码时不能预见需要创建哪种类的实例 系统需要考虑扩展性#xff… 前言 1.工厂模式概念 实例化对象用工厂方法代替new操作(重点) 工厂模式包括工厂方法模式和抽象工厂模式 抽象工厂模式是工厂方法模式的扩展 2.什么情况下适合工厂模式 有一组类似的对象需要创建 在编码时不能预见需要创建哪种类的实例 系统需要考虑扩展性不应依赖于产品类实例如果被创建、组合和表达的细节 女娲补天的故事大家都听说过吧今天不说这个说女娲创造人的故事可不是“造人”的工作这 个词被现代人滥用了。这个故事是说女娲在补了天后下到凡间一看哇塞风景太优美了天空是湛 蓝的水是清澈的空气是清新的太美丽了然后就待时间长了就有点寂寞了没有动物这些看的到 都是静态的东西呀怎么办 别忘了是神仙呀没有办不到的事情于是女娲就架起了八卦炉技术术语建立工厂开始创建人 具体过程是这样的先是泥巴捏然后放八卦炉里烤再扔到地上成长但是意外总是会产生的 第一次烤泥人兹兹兹兹~~感觉应该熟了往地上一扔biu~一个白人诞生了没烤熟 第二次烤泥人兹兹兹兹兹兹兹兹~~上次都没烤熟这次多烤会儿往地上一扔嘿熟过头了 黑人哪 第三次烤泥人兹~兹~兹~一边烤一边看着嘿正正好Perfect优品黄色人类  这个过程还是比较有意思的先看看类图  根据类图可以知道需要准备的类: 1.人类接口和对应实现 package factory1;/*** 定义一个人类接口* 首先定义什么是人类** author 1*/ public interface Human {/*** 人是愉快的会笑的本来是想用smile表示想了一下laugh更合适好长时间没有大笑了*/public void laugh();/*** 人类还会哭代表痛苦*/public void cry();/*** 人类会说话*/public void talk(); }package factory1;/*** 黄种人** author 1* version 1.0* description: TODO* date 2023/8/15 17:15*/ public class YellowHuman implements Human {Overridepublic void laugh() {System.out.println(黄色人类会大笑幸福呀);}Overridepublic void cry() {System.out.println(黄色人类会哭);}Overridepublic void talk() {System.out.println(黄色人类会说话一般说的都是双字节);} }package factory1;/*** 白种人** author 1* version 1.0* description: TODO* date 2023/8/15 17:16*/ public class WhiteHuman implements Human {Overridepublic void laugh() {System.out.println(白色人类会大笑侵略的笑声);}Overridepublic void cry() {System.out.println(白色人类会哭);}Overridepublic void talk() {System.out.println(白色人类会说话一般都是但是单字节);} }package factory1;/*** 黑人** author 1* version 1.0* description: TODO* date 2023/8/15 17:17*/ public class BlackHuman implements Human {Overridepublic void laugh() {System.out.println(黑人会笑);}Overridepublic void cry() {System.out.println(黑人会哭);}Overridepublic void talk() {System.out.println(黑人可以说话一般人听不懂);} }2.八卦炉 package factory1;import java.util.List; import java.util.Random;/*** 造人工厂* 女娲造人的故事:** author 1* version 1.0* description: 很久很久以前盘古开辟了天地用身躯造出日月星辰、山川草木天地一片繁华* 一天女娲下界走了一遭哎太寂寞太孤独了没个会笑的、会哭的、会说话的东东* 那怎么办呢不用愁女娲神仙呀造出来呀然后捏泥巴放八卦炉后来这个成了太白金星的宝* 贝中烤于是就有了人* 我们把这个生产人的过程用Java程序表现出来* date 2023/8/15 17:19*/ public class HumanFactory {/*** 定义一个八卦炉子** param c* return*/public static Human createHuman(Class c) {//定义一个类型的人类Human human null;try {//生产一个人类human (Human) Class.forName(c.getName()).newInstance();} catch (InstantiationException e) {System.out.println(必须指定人类颜色);} catch (IllegalAccessException e) {System.out.println(定义的人类错误);} catch (ClassNotFoundException e) {System.out.println(定义的人类找不到);}return human;}/*** 女娲生气了把一团泥巴塞到八卦炉哎产生啥人类就啥人类** return*/public static Human createHuman() {//定义一个类型的人类Human human null;//首先是获得有多少个实现类多少个人类//定义了多少人类ListClass concreteHumanList ClassUtils.getAllClassByInterface(Human.class);//八卦炉自己开始想烧出什么人就什么人Random random new Random();int rand random.nextInt(concreteHumanList.size());human createHuman(concreteHumanList.get(rand));return human;} }批量工具类:主要实现根据接口查找实现类(属于扩展知识) package factory1;import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; import java.util.List;/*** author 1* version 1.0* description: TODO* date 2023/8/15 17:48*/ SuppressWarnings(all) public class ClassUtils {//给一个接口返回这个接口的所有实现类public static ListClass getAllClassByInterface(Class c){ListClass returnClassList new ArrayListClass(); //返回结果//如果不是一个接口则不做处理if(c.isInterface()){String packageName c.getPackage().getName(); //获得当前的包名try {//获得当前包下以及子包下的所有类ListClass allClass getClasses(packageName);//判断是否是同一个接口for(int i0;iallClass.size();i){if(c.isAssignableFrom(allClass.get(i))){ //判断是不是一个接口if(!c.equals(allClass.get(i))){ //本身不加进去returnClassList.add(allClass.get(i));}}}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}return returnClassList;}//从一个包中查找出所有的类在jar包中不能查找private static ListClass getClasses(String packageName)throws ClassNotFoundException, IOException {ClassLoader classLoader Thread.currentThread().getContextClassLoader();String path packageName.replace(., /);EnumerationURL resources classLoader.getResources(path);ListFile dirs new ArrayListFile();while (resources.hasMoreElements()) {URL resource resources.nextElement();dirs.add(new File(resource.getFile()));}ArrayListClass classes new ArrayListClass();for (File directory : dirs) {classes.addAll(findClasses(directory, packageName));}return classes;}private static ListClass findClasses(File directory, String packageName)throws ClassNotFoundException {ListClass classes new ArrayListClass();if (!directory.exists()) {return classes;}File[] files directory.listFiles();for (File file : files) {if (file.isDirectory()) {assert !file.getName().contains(.);classes.addAll(findClasses(file, packageName . file.getName()));} else if (file.getName().endsWith(.class)) {classes.add(Class.forName(packageName . file.getName().substring(0, file.getName().length() - 6)));}}return classes;} }女娲类 package factory1;/*** 女娲** author 1* version 1.0* description: TODO* date 2023/8/15 17:28*/ public class NvWa {public static void main(String[] args) {System.out.println((1)女娲第一次造人,火候不足,白人----------------);Human witheHuman HumanFactory.createHuman(WhiteHuman.class);witheHuman.talk();witheHuman.laugh();witheHuman.cry();System.out.println((2)女娲第二次造人火候加足点然后又出了个次品黑人------------------);Human blackHuman HumanFactory.createHuman(BlackHuman.class);blackHuman.cry();blackHuman.laugh();blackHuman.talk();System.out.println((3)女娲第三次造人这次火候掌握的正好黄色人类-----------------);Human yellowHuman HumanFactory.createHuman(YellowHuman.class);yellowHuman.cry();yellowHuman.laugh();yellowHuman.talk();System.out.println((4)女娲让八卦炉随机造人------------------);for (int i 0; i 10; i) {System.out.println(随机产生人类******* i);Human human HumanFactory.createHuman();human.cry();human.laugh();human.talk();}} }运行结果 (1)女娲第一次造人,火候不足,白人---------------- 白色人类会说话一般都是但是单字节 白色人类会大笑侵略的笑声 白色人类会哭 (2)女娲第二次造人火候加足点然后又出了个次品黑人------------------ 黑人会哭 黑人会笑 黑人可以说话一般人听不懂 (3)女娲第三次造人这次火候掌握的正好黄色人类----------------- 黄色人类会哭 黄色人类会大笑幸福呀 黄色人类会说话一般说的都是双字节 (4)女娲让八卦炉随机造人------------------ 随机产生人类*******0 白色人类会哭 白色人类会大笑侵略的笑声 白色人类会说话一般都是但是单字节 随机产生人类*******1 黄色人类会哭 黄色人类会大笑幸福呀 黄色人类会说话一般说的都是双字节 随机产生人类*******2 白色人类会哭 白色人类会大笑侵略的笑声 白色人类会说话一般都是但是单字节 随机产生人类*******3 黑人会哭 黑人会笑 黑人可以说话一般人听不懂 随机产生人类*******4 黑人会哭 黑人会笑 黑人可以说话一般人听不懂 随机产生人类*******5 黑人会哭 黑人会笑 黑人可以说话一般人听不懂 随机产生人类*******6 白色人类会哭 白色人类会大笑侵略的笑声 白色人类会说话一般都是但是单字节 随机产生人类*******7 黑人会哭 黑人会笑 黑人可以说话一般人听不懂 随机产生人类*******8 黑人会哭 黑人会笑 黑人可以说话一般人听不懂 随机产生人类*******9 白色人类会哭 白色人类会大笑侵略的笑声 白色人类会说话一般都是但是单字节
http://www.zqtcl.cn/news/661300/

相关文章:

  • 桦南县建设局网站天坛装修公司口碑怎么样
  • 网站的建设求职简历网站开发与维护价格
  • 网站空间备份站长网站优点
  • 房产网站做那个比较好网页设计属于前端吗
  • 衡水企业网站建设费用html5网页设计教程
  • 用wp系统做网站网站有收录没排名
  • 网站源码程序下载ios开发软件
  • 设计好的网站什么是企业网站策划案
  • 北京网站建设亿玛酷适合5传奇网站装备动态图怎么做
  • 多平台网站设计实例3d效果图什么网站做的好
  • 58同城西安网站建设购物网站前端浮动特效怎么做
  • asp网站模板源码wordpress 画图插件
  • 免费网站建站 知乎伪原创嵌入网站
  • 2网站建设城乡住房建设网站
  • 游戏网站建设公司建设银行网站登陆二星是什么意思
  • 长春网站排名优化泉州网站建设方案服务
  • 教育培训机构加盟十大排名搜索引擎优化宝典
  • 全景精灵网站建设网站建设长尾关键词
  • 老城网站建设注册网站不需要手机验证的
  • 可以赚钱做任务的网站有哪些莘县做网站
  • 可信网站 认证规则山东网站建设代理
  • 网站怎么谈设计常用的软件开发文档有哪些
  • 该怎么给做网站的提页面需求焦作做网站公司
  • 自己做的网站找不到了制作网站问题和解决方法
  • 5118站长平台cento安装wordpress
  • 政务大厅网站建设管理制度wordpress商城移动端
  • 提供中小企业网站建设北京企业网站建设公司哪家好
  • 做海报找图片的网站黑群晖按照wordpress
  • 网站建设与运营市场开拓方案网站首页策划
  • 做国外网站什么好网站快速优化排名排名