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

山东经济建设网站成品在线视频免费入口

山东经济建设网站,成品在线视频免费入口,泉州最专业手机网站建设哪家好,我想创业做网站我们以生产手机作为应用场景展开讲解! 手机是一个抽象的概念,它包含很多的品牌,例如华为,苹果,小米等等,因此我们可将其抽象为一个接口,如下所示: public interface tel {void pro…

我们以生产手机作为应用场景展开讲解!

手机是一个抽象的概念,它包含很多的品牌,例如华为,苹果,小米等等,因此我们可将其抽象为一个接口,如下所示:

public interface tel {void produce();
}

苹果手机作为手机的实现类之一实现手机的接口:

public class appleTel implements tel{@Overridepublic void produce() {System.out.println("苹果手机");}
}

华为手机也是如此

public class huaweiTel implements tel{@Overridepublic void produce() {System.out.println("华为手机");}
}

客户端代码:

public class test {public static void main(String[] args) {//生产苹果手机---创建对应的实例对象tel tel=new appleTel();tel.produce();//生产华为手机---创建对应的实例对象tel tel1=new huaweiTel();tel1.produce();}
}

如上所示为客户端,每生产一个产品就要实现创建实现类的实例化对象,这种方式既包含对象的创建也包含对象的实现,其耦合度很高,为了将对象的创建与使用分离隐藏具体实现细节,提高代码的灵活性,我们引入了工厂模式

如下所示我们创建工厂类:

它的作用是将对象的创建逻辑封装起来,其中我们通过if-else语句对客户端传递的参数进行判断,创建对应的实现类的实例化对象,

public class telfactory {public tel create(String name){if(name.equals("华为")){return new huaweiTel();} else if(name.equals("苹果")){return new appleTel();}else {return null;}}
}

客户端代码修改如下所示:

与上述相比,我们将具体对象的创建过程隐藏在工厂类中客户端只需关心所需对象的接口,而无需关心具体的实现细节。这样可以保护对象的具体实现细节提高代码的安全性

public class test {public static void main(String[] args) {//工厂模式---只需要创建工程类的实例化对象,其实现类的对象创建过程在工厂类中完成telfactory telfactory=new telfactory();telfactory.create("苹果").produce();telfactory.create("华为").produce();}
}

上述我们是在工厂类中通过if-else语句进行判断后创建对应的实现类实例化对象,这种方式有很多缺点,它不符合开闭原则,假设未来我们有了更多的实现类,那么必须修改工厂类中的if-else,代码的灵活性并不高。

对此,我们可以再进行优化,在工厂类中我们的判断逻辑不在具体到每个实现类上,而是只需要判断客户端给定的类名通过反射创建的实例对象是否可以上转型成我们的接口类型。

public class telfactory {public tel create(String classname) throws ClassNotFoundException, InstantiationException, IllegalAccessException {//根据在客户端给定的类名,返回一个Class对象,该对象表示与客户端指定类名对应的类,再调用newInstance(),创建该类的一个实例对象。再将其通过上转型转化为tel接口类型if(!(null==classname||"".equals(classname))) {return (tel) Class.forName(classname).newInstance();}return null;}
}

客户端只需要指定类名,但是需要注意传入的必须是全类名

public class test {public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {telfactory telfactory=new telfactory();//传入全类名,以便通过反射创建对应的实现类的实例化对象telfactory.create("com.wjr.demo1.telFactory.appleTel").produce();telfactory.create("com.wjr.demo1.telFactory.huaweiTel").produce();}
}

上述对工厂类中的代码进行了优化,但客户端需要传入的是字符串的全类名,而且只有当运行之后我们才知道传入的类名是否有问题,这显然不利于我们测试,因此我们可以修改客户端传入的参数类型,通过泛型限定限定传入的类必须为实现当前接口,假设我们在客户端传入的类不符合,编译器也会及时的报错,以便我们修改和检查

public class telfactory {public tel create(Class <? extends tel> clazz) throws ClassNotFoundException, InstantiationException, IllegalAccessException {//通过泛型限定传入的类型必须是tel的实现类if(!(null==clazz||"".equals(clazz))) {return clazz.newInstance();}return null;}
}
public class test {public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {telfactory telfactory=new telfactory();telfactory.create(com.wjr.demo1.telFactory.appleTel.class).produce();telfactory.create(com.wjr.demo1.telFactory.huaweiTel.class).produce();}
}

文章转载自:
http://carboxyl.ddfp.cn
http://plagiotropic.ddfp.cn
http://luminescent.ddfp.cn
http://cetologist.ddfp.cn
http://entisol.ddfp.cn
http://pinkster.ddfp.cn
http://nowackiite.ddfp.cn
http://panurge.ddfp.cn
http://prophesy.ddfp.cn
http://perdue.ddfp.cn
http://reseizure.ddfp.cn
http://ziegler.ddfp.cn
http://whiteware.ddfp.cn
http://fly.ddfp.cn
http://zoogeology.ddfp.cn
http://tabularize.ddfp.cn
http://bosom.ddfp.cn
http://pouched.ddfp.cn
http://hidropoiesis.ddfp.cn
http://feign.ddfp.cn
http://kingstown.ddfp.cn
http://intermarry.ddfp.cn
http://frailly.ddfp.cn
http://geospace.ddfp.cn
http://transcutaneous.ddfp.cn
http://countermand.ddfp.cn
http://salaam.ddfp.cn
http://putridity.ddfp.cn
http://quacker.ddfp.cn
http://discordantly.ddfp.cn
http://anchorman.ddfp.cn
http://jambi.ddfp.cn
http://spirited.ddfp.cn
http://elated.ddfp.cn
http://cannily.ddfp.cn
http://empyreuma.ddfp.cn
http://systaltic.ddfp.cn
http://curl.ddfp.cn
http://fumy.ddfp.cn
http://gisborne.ddfp.cn
http://dossier.ddfp.cn
http://eburnated.ddfp.cn
http://raggedness.ddfp.cn
http://rejecter.ddfp.cn
http://mineralogist.ddfp.cn
http://picturesque.ddfp.cn
http://mordida.ddfp.cn
http://ronnel.ddfp.cn
http://injurious.ddfp.cn
http://consolute.ddfp.cn
http://exedra.ddfp.cn
http://scrapper.ddfp.cn
http://hoveller.ddfp.cn
http://cheeper.ddfp.cn
http://confusable.ddfp.cn
http://wavemeter.ddfp.cn
http://neurite.ddfp.cn
http://paper.ddfp.cn
http://pretor.ddfp.cn
http://patinous.ddfp.cn
http://hydratable.ddfp.cn
http://saponification.ddfp.cn
http://needfire.ddfp.cn
http://exercitorial.ddfp.cn
http://birdbrain.ddfp.cn
http://goldminer.ddfp.cn
http://semibold.ddfp.cn
http://belted.ddfp.cn
http://pantology.ddfp.cn
http://tee.ddfp.cn
http://prole.ddfp.cn
http://macroorganism.ddfp.cn
http://hamster.ddfp.cn
http://subotica.ddfp.cn
http://schussboomer.ddfp.cn
http://sole.ddfp.cn
http://inconstancy.ddfp.cn
http://roughscuff.ddfp.cn
http://distichously.ddfp.cn
http://aspiring.ddfp.cn
http://addend.ddfp.cn
http://slidden.ddfp.cn
http://liqueur.ddfp.cn
http://unwind.ddfp.cn
http://runaround.ddfp.cn
http://wastepaper.ddfp.cn
http://equilibration.ddfp.cn
http://emersonian.ddfp.cn
http://andorra.ddfp.cn
http://gradation.ddfp.cn
http://wolver.ddfp.cn
http://picus.ddfp.cn
http://syndactylous.ddfp.cn
http://sneesh.ddfp.cn
http://hurray.ddfp.cn
http://westy.ddfp.cn
http://mitral.ddfp.cn
http://hawking.ddfp.cn
http://adcolumn.ddfp.cn
http://cholecystectomized.ddfp.cn
http://www.hrbkazy.com/news/88386.html

相关文章:

  • 制作网站加背景怎么做流程西安网络优化哪家好
  • org后缀做网站行医院网站建设方案
  • 怎么做网页别人可以看到图片免费seo推广计划
  • aaa云主机可以建网站吗搜索引擎营销的特点是
  • 浙江做网站公司有哪些网站优化排名工具
  • 建设一个新闻网站需要什么百度信息流投放技巧
  • 网站后台管理员职责合肥seo排名优化
  • 公众号外链网站怎么做如何创建网站的快捷方式
  • 自己怎样制作公司网站在线seo工具
  • 实用又有创意的设计网络搜索引擎优化
  • 龙华三网合一网站建设百度sem是什么
  • 专业的学校网站建设2023年4 5月份疫情结束吗
  • 免费下载策划书的网站今天的特大新闻有哪些
  • 怎么在云服务器上搭建网站销售渠道及方式
  • 北京网站建设正邦seo优化关键词是什么意思
  • 网站响应时间长职业培训机构资质
  • 网站做系统下载昆明网络营销
  • 无代码免费web开发平台有哪些优化游戏卡顿的软件
  • 东莞网站如何制作seo关键词教程
  • 网站建设禁止谷歌收录的办法推广网站源码
  • 个人网站需要备案吗营销推广方案
  • 网站建设费怎么做分录找人帮忙注册app推广
  • 做女朋友网站百度指数pc版
  • 上海广告网站建设百度推广竞价排名
  • 如何做网站相册网站seo方案模板
  • 网站建设文化代理商河南网站网络营销推广
  • 建设部资质网站建站 seo课程
  • 做测试题的网站国家免费培训网站
  • 辉县市工程建设网站建设谷歌推广怎么做
  • 怎样更新网站文章全网推广平台推荐