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

合肥网站建设设计展厅建筑设计厂家

合肥网站建设设计,展厅建筑设计厂家,网站备案接口,帮人做网站在徐州被敲诈五万java 工厂方法模式在上一篇有关模板方法模式的文章中 #xff0c;我展示了如何利用lambda表达式和默认方法 。 在本文中#xff0c;我将探讨工厂方法模式#xff0c;并了解如何利用方法引用#xff0c;这是Java 8中与lambda表达式一起添加的另一项功能。 让我们考虑一个Ve… java 工厂方法模式 在上一篇有关模板方法模式的文章中 我展示了如何利用lambda表达式和默认方法 。 在本文中我将探讨工厂方法模式并了解如何利用方法引用这是Java 8中与lambda表达式一起添加的另一项功能。 让我们考虑一个Vehicle接口及其两个实现即Car和Vehicle 。 interface Vehicle{public void drive();public void clean(); } class Car implements Vehicle{Overridepublic void drive(){System.out.println(Driving a car...);}Overridepublic void clean(){System.out.println(Cleaning a car...);} } class Bus implements Vehicle{Overridepublic void drive(){System.out.println(Driving a Bus...);}Overridepublic void clean(){System.out.println(Cleaning a Bus...);} } 为了drive()和clean() Vehicle我们将使用VehicleDriver 。 Java 7及更低版本中的实现 让我们从Java 8之前的版本即Java 7和更低版本的角度考虑VehicleDriver的实现和实现。 abstract class VehicleDriver{public abstract Vehicle getVehicle();public void driveVehicle(){getVehicle().drive();}public void cleanVehicle(){getVehicle().clean();} } class CarDriver extends VehicleDriver{Overridepublic Vehicle getVehicle(){return new Car();} }class BusDriver extends VehicleDriver{Overridepublic Vehicle getVehicle(){return new Bus();} } 在上述VehicleDriver实现中 getVehicle()方法是工厂方法被CarDriver和Busdriver覆盖以分别返回Car和Bus实例。 这样程序员将更加关注使用VehicleDriver抽象而不必关注其不同的实现。 还有另一种相关的模式 工厂模式 它与该模式略有不同读者不应将其与该模式混淆。 好的让我们快速看一下如何使用它然后再进行其Java 8变体 public class FactoryMethodPattern {public static void main(String[] args) {handleVehicle(new CarDriver());handleVehicle(new BusDriver());}static void handleVehicle(VehicleDriver2 vDriver){System.out.println(Handling a new vehicle. Pre lambda way);vDriver.driveVehicle();vDriver.cleanVehicle();} } 输出为 Handling a new vehicle. Pre lambda way Driving a car... Cleaning a car... Handling a new vehicle. Pre lambda way Driving a Bus... Cleaning a Bus...利用Java 8 首先我们不需要抽象的VehicleDriver及其2种不同的实现。 取而代之的是我们使用带有 VehicleDriver 接口的方法来创建VehicleDriver抽象如下所示 interface VehicleDriver{public Vehicle getVehicle();public default void driveVehicle(){getVehicle().drive();}public default void cleanVehicle(){getVehicle().clean();} } 现在来看有趣的部分-使用方法引用而不是创建VehicleDriver不同实现。 这些方法引用为代码提供了一种获取所需的Car或Bus类实例的方法而无需陷入重写getVehicle()方法的麻烦。 困惑 好奇 让我们看看如何实现这一目标 public class FactoryMethodPatternLambda {public static void main(String[] args) {handleVehicle(Car::new);handleVehicle(Bus::new);}static void handleVehicle(VehicleDriver vDriver){System.out.println(Handling a new vehicle...);vDriver.driveVehicle();vDriver.cleanVehicle();} } 输出为 Handling a new vehicle... Driving a car... Cleaning a car... Handling a new vehicle... Driving a Bus... Cleaning a Bus... 我们只提供了一个Vehicle来处理handleVehicle方法而不用担心它是如何被处理或由谁来处理的。 但是在Java 7中以及在实现之前我们必须意识到有一些VehicleDriver抽象类然后我们必须重写其某些方法然后创建该扩展类的实例。 通过显示此示例我的主要目的是可以利用Java 8功能来创建更简洁易用的API。 但是随着所有新功能的出现学习曲线也随之增加。 注意在上述两种实现中共同的部分是Vehicle Car和Bus类它们由Java 7和Java 8实现使用。 参考 JCG合作伙伴 Mohamed Sanaulla在Javas中的Factory Method模式来自Experiences Unlimited博客。 翻译自: https://www.javacodegeeks.com/2013/05/factory-method-pattern-in-java.htmljava 工厂方法模式
http://www.pierceye.com/news/534943/

相关文章:

  • 专业建站公司主要做什么wordpress加入下载标签
  • 韩都衣舍网站建设方案美食网站怎么做dw
  • 电商网站开发 参考文献wordpress验证码注册
  • ic外贸网站建设wordpress和shopex
  • 网站技术制作流程图国内顶尖小程序开发公司
  • 免费网站建设下载优化关键词规则
  • 网站浮动窗口如何做自己怎么做淘宝客网站
  • 石材外贸在哪个网站做网页版 微信
  • 网站开发属于程序员吗sem 优化软件
  • 公司做网站是管理费用小程序官方文档
  • 公司网站推广技巧响水网站设计
  • 徐州本地网站wap页面是什么
  • 网站开发应用价值做套网站多少钱
  • asp.net网站模板免费下载怎么才能访问自己做的网站
  • 长沙企业网站制作宝安公司网站建设
  • 做网站需要拉多大的宽带dw做的网站怎么做后台
  • 公司网站建设设计公司哪家好wordpress自动封ip
  • 郫县网站制作wordpress搜索打钩
  • 哪些网站可以做招商广告语wordpress发文章的id怎么不连续
  • 家私网站栏目和功能需求策划网页样式库
  • 什么是网站网页主页企业电子邮箱格式
  • 金属建材企业网站建设方案用pycharm做网站
  • 重庆网站空间黄骅港一期码头潮汐表
  • 推广网站如何做做酒店网站所用到的算法
  • 最好的网站建设组织wordpress 删除google
  • 生物科技 网站模板下载在线室内设计
  • 网站兼容性问题线上设计师接单
  • 外包网站平台可以做电算化的网站
  • 教育网站设计案例学校网站设计
  • 网站建设入门教程pdf网络推广和seo