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

wordpress optiontree谷歌seo推广

wordpress optiontree,谷歌seo推广,网站设计的风格有哪些,怎么做公司网站seooop 类和对象的实用程序类#xff08;也称为帮助程序类#xff09;是仅具有静态方法且不封装状态的“结构”。 StringUtils #xff0c; IOUtils #xff0c; FileUtils从Apache的共享 ; Guava的 Iterables和Iterators以及JDK7的Files是实用程序类的完美示例。 这种设计思… oop 类和对象的 实用程序类也称为帮助程序类是仅具有静态方法且不封装状态的“结构”。 StringUtils IOUtils FileUtils从Apache的共享 ; Guava的 Iterables和Iterators以及JDK7的Files是实用程序类的完美示例。 这种设计思想在Java世界以及CRuby等中非常流行因为实用程序类提供了在各处使用的通用功能。 在这里我们要遵循DRY原则并避免重复。 因此我们将通用代码块放入实用程序类中并在必要时重用它们 // This is a terrible design, dont reuse public class NumberUtils {public static int max(int a, int b) {return a b ? a : b;} } 确实这是一种非常方便的技术 实用程序类是邪恶的 但是在面向对象的世界中实用程序类被认为是非常不好的实践有些甚至可能说“可怕”。 关于这个主题已经有很多讨论。 仅举几例 Helper Classes Evil 尼克·马利克Nick Malik撰写的《 为什么西蒙·哈特Simon Hart的助手单身人士和实用程序类大多不好 沃德元帅避免使用实用程序类 杀死 实用程序类 由Dhaval Dalal撰写 帮助类是 Rob Bagby的代码气味 。 此外在StackExchange上还有一些关于实用程序类的问题 如果“实用程序”类是邪恶的那么我应该将通用代码放在哪里 实用程序类是邪恶的 。 他们所有论点的简要总结是实用程序类不是正确的对象。 因此它们不适合面向对象的世界。 它们从过程编程中继承而来主要是因为大多数方法都用于那时的功能分解范例。 假设您同意这些参数并且想停止使用实用程序类我将通过示例展示如何用适当的对象替换这些生物。 程序示例 举例来说假设您要读取一个文本文件将其拆分为几行修剪每一行然后将结果保存到另一个文件中。 这可以通过Apache Commons的FileUtils完成 void transform(File in, File out) {CollectionString src FileUtils.readLines(in, UTF-8);CollectionString dest new ArrayList(src.size());for (String line : src) {dest.add(line.trim());}FileUtils.writeLines(out, dest, UTF-8); } 上面的代码看起来很干净 但是这是过程编程而不是面向对象的。 我们正在处理数据字节和位并明确指示计算机从何处检索数据然后在何处将其放置在每一行代码中。 我们正在定义执行程序 。 面向对象的替代 在面向对象的范例我们应该实例和撰写的对象从而让他们管理数据时 他们如何渴望。 与其调用补充静态函数不如创建能够公开我们正在寻求的行为的对象 public class Max implements Number {private final int a;private final int b;public Max(int x, int y) {this.a x;this.b y;}Overridepublic int intValue() {return this.a this.b ? this.a : this.b;} } 此过程调用 int max NumberUtils.max(10, 5); 将成为面向对象的 int max new Max(10, 5).intValue(); 土豆土豆 并不是的; 只是继续阅读... 对象而不是数据结构 这就是我如何设计与上述相同的文件转换功能但是是以面向对象的方式进行的 void transform(File in, File out) {CollectionString src new Trimmed(new FileLines(new UnicodeFile(in)));CollectionString dest new FileLines(new UnicodeFile(out));dest.addAll(src); } FileLines实现CollectionString并封装所有文件读取和写入操作。 FileLines实例的行为与字符串的集合完全相同并且隐藏了所有I / O操作。 当我们迭代它时—正在读取一个文件。 当我们addAll()时—正在写入文件。 Trimmed还实现了CollectionString并封装了一个字符串集合 Decorator模式 。 每次检索下一行时都会对其进行修剪。 所有服用参与片断类是相当小 Trimmed FileLines和UnicodeFile 。 他们每个人都对自己的单一功能负责因此完全遵循单一责任原则 。 在我们这方面作为库的用户这可能并不那么重要但是对于他们的开发人员而言这势在必行。 与在80多个方法和3000行实用程序类FileUtils使用readLines()方法相比开发维护和测试FileLines类要容易得多。 认真地看一下其源代码 。 面向对象的方法使延迟执行成为可能。 in需要输入数据之前不会读取in文件。 如果我们不能开out由于一些I / O错误第一个文件甚至不能触及。 整个节目只有在我们调用addAll()之后才开始。 除了最后一个片段外第二个片段中的所有行都实例化并将较小的对象组合为较大的对象。 该对象组合对于CPU而言相当便宜因为它不会引起任何数据转换。 除此之外很明显第二个脚本在O1空间中运行而第一个脚本在On中运行。 这是我们对第一个脚本中的数据采用过程方法的结果。 在面向对象的世界中没有数据。 只有对象及其行为 相关文章 您可能还会发现以下有趣的帖子 为什么NULL是错误的 避免字符串串联 对象应该是不可变的 Java代码中的典型错误 翻译自: https://www.javacodegeeks.com/2014/09/oop-alternative-to-utility-classes.htmloop 类和对象的
http://www.yutouwan.com/news/490080/

相关文章:

  • 获取网站浏览者手机号开发网站申请
  • 外贸建站哪好网络设计一般包括
  • 长沙点梦网站建设做网站有前途吗
  • 网站的友情链接怎么做seo网站建设 厦门
  • 网站公司成功案例怎么写中国建设银行有哪些招聘网站
  • 手机网站淘宝客个人网站开发合同
  • 做门户网站的营业范围wordpress首页调用评论
  • 网络销售网站外包深圳做网站公司有哪些公司
  • 企业网站可以做商城类青岛app定制开发公司
  • php网站分类目录源码计算机网站开发参考文献
  • 推广网站案例本地的wordpress地址
  • 成都手机微信网站建设报价单沈阳大型网站设计公司
  • 网站设计与网页制作正文怎么做推广和宣传平台
  • 湖南网站建设优化天津平台网站建设费用
  • 网站建设中高低端区别网站实名审核中心
  • html5网站制作枣庄手机网站建设
  • 建网站 绑定域名 网址制作图片的软件加图免费
  • 织梦笑话网站哈尔滨专业网站制作公司
  • 建设企业网站的作用机票特价网站建设
  • 做数据分析好看的网站360建站模板
  • 济南网站建设求职android下载软件
  • 客户都不愿意做网站建设物业公司网站
  • 同时做几个网站互相链接加盟店
  • 网络网站推广首荐乐云seo农村自建房设计师哪里找
  • 域名备案和网站备案有什么区别如何做公司网站建设
  • wordpress 发布软件吉林网站seo
  • 西安快速建站网络公司搞定设计在线制作
  • 做网站的协议书和计划书易优cms收费吗
  • 免费做app和网站的平台有哪些视频转动图在线制作网站
  • 网站后台上传缩略图单品电商网站建设