Java 建造者模式(Builder Pattern)知多少?
因 Java 中没有命名参数的概念,当一个类的构造器可选参数太多的时候,代码可读性会变得很差。于是,建造者模式(Builder Pattern)应运而生。 本文首先举了一个真实的例子,引出构造器可选参数太多时应如何去处理的问题。然后,分析传统的伸缩式构造器模式与 JavaBeans 构造器模式在处理该问题时存在的不足;最后,引出了建造者模式,介绍了其设计思路与优点。
阅读更多因 Java 中没有命名参数的概念,当一个类的构造器可选参数太多的时候,代码可读性会变得很差。于是,建造者模式(Builder Pattern)应运而生。 本文首先举了一个真实的例子,引出构造器可选参数太多时应如何去处理的问题。然后,分析传统的伸缩式构造器模式与 JavaBeans 构造器模式在处理该问题时存在的不足;最后,引出了建造者模式,介绍了其设计思路与优点。
阅读更多Java 7 中引入了 try-with-resources
特性来保证资源使用完毕后,自动进行关闭。任何实现了 java.lang.AutoCloseable
接口的类,都可以看作是资源,也都可以使用该特性。本文将详细介绍该特性的使用方法与注意事项。
使用 Java 原生方式访问 PostgreSQL 数据库时,偶然发现 JDBC Driver 42.3.0 读取 BigDecimal 时发生小数点前的 0 全部被抹掉的 Bug,特记录于此。
阅读更多本文首先将介绍在 Java 8 之前,传统的 Date 与 String 相互转换的工具类是怎么实现的;接着再探索在 Java 8 新引入 Instant 后,如何实现 Instant 与 String 的互转,以及新的工具类的实现。
阅读更多10 月 27 日,是一個讓全體中國人悲傷的日子。 27 日上午,先後驚聞克強總理、尊友先生突然去世的消息,心情久久不能平復。
阅读更多26 號,下班回家後,太太跟我說今天偶然在朋友圈看到其三姨家姨姐發佈的一條水滴籌款的動態。 籌款描述裏說:「中秋前一天,孩子過馬路時被一輛轎車撞倒,到現在已過去 27 天,仍在重症病房搶救,還沒有完全蘇醒。肇事司機還未被交管部門定責,只賠付了一萬元。家裏的錢已快用光,急需社會人士提供幫助。」
阅读更多