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

免费的舆情网站下载电子商务网站开发怎么设计

免费的舆情网站下载,电子商务网站开发怎么设计,wordpress橙色主题,网站开发包括网站的等过程设计模式适配器模式这是我的演讲的第三部分#xff0c;“ 21世纪的设计模式” 。 适配器模式桥接世界。 在一个世界中#xff0c;我们有一个概念的界面。 在另一个世界#xff0c;我们有不同的界面。 这两个接口有不同的用途#xff0c;但有时我们需要进行转移。 在编写良… 设计模式适配器模式 这是我的演讲的第三部分“ 21世纪的设计模式” 。 适配器模式桥接世界。 在一个世界中我们有一个概念的界面。 在另一个世界我们有不同的界面。 这两个接口有不同的用途但有时我们需要进行转移。 在编写良好的世界中我们可以使用适配器使遵循一种协议的对象遵守另一种协议。 适配器模式有两种。 我们不会谈论这个 interface Fire {T BurntT burn(T thing); }interface Oven {Food cook(Food food); }class WoodFire implements Fire { ... }class MakeshiftOven extends WoodFire implements Oven {Override public Food cook(Food food) {BurntFood noms burn(food);return noms.scrapeOffBurntBits();} } 这种形式 类Adapter模式使我感到惊讶因为extends给了我暴走的吉卜赛人。 为什么不在本文的讨论范围之内 随时问我我会很乐意谈论你的耳朵可能是你的鼻子。 取而代之的是让我们谈论对象适配器模式 该模式通常被认为在所有方面都更加有用和灵活。 让我们看一下同一个类遵循以下替代方法 class MakeshiftOven implements Oven {private final Fire fire;public MakeshiftOven(Fire fire) {this.fire fire;}Override public Food cook(Food food) {BurntFood noms fire.burn(food);return noms.scrapeOffBurntBits();} } 我们将像这样使用它 Oven oven new MakeshiftOven(fire); Food bakedPie oven.cook(pie); 该模式通常遵循以下简单结构 很好对吗 是。 有点。 我们可以做得更好。 我们已经有对Fire的引用因此构造另一个仅用于Fire对象似乎有点…过大。 该对象实现了Oven 。 其中有一个抽象方法 。 我在这里看到一种趋势。 相反我们可以创建一个功能相同的函数。 Oven oven food - fire.burn(food).scrapeOffBurntBits(); Food bakedPie oven.cook(pie); 我们可以再进一步编写方法引用但是实际上情况变得更糟。 // Do *not* do this. FunctionFood, BurntFood burn fire::burn; FunctionFood, Food cook burn.andThen(Burnt::scrapeOffBurntBits); Oven oven cook::apply; Food bakedPie oven.cook(pie); 这是因为Java不能在功能接口之间进行隐式转换因此我们需要为它提供有关操作的每个阶段的提示。 另一方面Lambda对于任何具有正确类型的功能接口都是隐式强制的并且编译器在弄清楚如何做到这一点方面做得很好。 我们新的UML图将如下所示 通常我们真正需要的只是方法参考。 例如使用Executor界面。 package java.util.concurrent;/*** An object that executes submitted {link Runnable} tasks.*/ public interface Executor {void execute(Runnable command); } 它消耗了Runnable对象这是一个非常有用的界面。 现在我们将其中一个和一堆Runnable任务保存在Stream 。 Executor executor ...; StreamRunnable tasks ...; 我们如何在执行Executor上执行所有这些Executor 这行不通 tasks.forEach(executor); 事实证明 Stream 上的forEach方法确实需要使用方但是它是一个非常特定的类型 public interface StreamT {...void forEach(Consumer? super T action);... } Consumer看起来像这样 FunctionalInterface public interface ConsumerT {void accept(T t);... } 乍一看这似乎没有什么帮助。 但是请注意 Consumer是一个功能接口因此我们可以使用lambda真正轻松地指定它们。 这意味着我们可以这样做 tasks.forEach(task - executor.execute(task)); 对此可以进一步简化 tasks.forEach(executor::execute); Java 8使适配器变得非常简单以至于我犹豫不再将它们称为模式。 这个概念仍然非常重要。 通过显式创建适配器我们可以将这两个世界分开除了在定义的边界点处。 的实现但是 它们只是功能。 翻译自: https://www.javacodegeeks.com/2015/04/design-patterns-in-the-21st-century-the-adapter-pattern.html设计模式适配器模式
http://www.yutouwan.com/news/148853/

相关文章:

  • 合肥商城网站建设教育 企业 重庆网站建设
  • 高校英文网站建设手机能建设网站
  • 站长工具5g电脑怎么做网站赚钱
  • 生物医药基地网站建设什邡建设局网站
  • 咸阳网站建设公司电话链接买卖平台
  • 延安网站制作都有哪些网站可以做推广
  • 怎样建一个免费网站玉林市网站开发公司电话
  • 重庆专业网站排名团队做资源分享网站怎么样
  • 福州制作手机网站网络推广网站建设方案
  • 企业建站系统下载wordpress大图插件
  • 手机 网站企业网站建设策划书标准版
  • 用idea做html网站施工企业工作环境
  • 网站建设全攻略免费发做网站
  • 网站开发工具链接服务器单位网站建设有机房吗
  • 网站空间 推荐瀑布流 主题 wordpress
  • 网站的优点和缺点哈尔滨道外区建设局官方网站
  • 怎么架设一个网站wordpress主题akina
  • 伍佰亿书画网网站app开发公司掌握我的源代码吗
  • 广州做手机网站咨询商城分销系统
  • 家乡网站建设策划书模板东昌网站建设
  • 株洲本地新闻seo人人网
  • 帮我们做网站的人找不到了做一名优秀网站设计师计划
  • 专业营销网站制作10大品牌网
  • 北京网站建设最便宜的公司哪家好技术先进的网站设计制作
  • 那几家是做失物招领的网站免费友情链接平台
  • 免费行情软件app网站mnu公主岭市住房和城乡建设局网站
  • 廊坊建站模板系统wordpress 归档页面
  • php仿百度网站源码网业截屏怎么截
  • 硬盘做网站空间图书网页设计网站
  • 阿里云网站域名查询青海省建设局网站首页