界面组装器模式

2006年06月01日 - 界面组装器模式 - 界面组装器模式 - 界面设计常常是模式产生的根源,无论是架构模式,还是设计模式,比如 MVC 模式,Observer,Facade 等,也是整个软件行业向前发展的动力。遗憾的是,即使在软件技术发达的今天,界面设计仍是软件设计中的难以突破的瓶颈之一。我们用过 Java swing 或 Eclipse SWT 作过项目的都知道,要将界面进行分解是很困难的,它不像我们的业务逻辑,可以方便地按职责分解到不同的类中去实现,因为...详情

Single Call 模式

2003年04月21日 - Single Call 模式 - 在进行面向对象得分析与设计的实践过程中我们经常会遇到聚合(Aggregations)与组合(Composition)这两种关系,聚合是一种关联形式,它指明一个聚集(整体)和组成部分之间的整体与部分的关系。组合是指一种带有很强主从关系,成分的生命期一致的聚集关联形式。一个部分可以仅属于一个组成。没有固定多重性的部分可以在组成创建后再被创建。但是一旦被创建,这些部分将与组成同时存在并同时消亡(共享生存周期)...详情

State模式在客户端软件中的应用

2005年01月01日 - State模式在客户端软件中的应用 - State模式在客户端软件中的应用 - 在分层软件体系结构中,服务端程序关注于实现业务逻辑,客户端程序则包含用户界面。服务端程序由客户端程序调用,其请求、响应模式在设计时已经确定,运行时出现问题的概率较小。相反,客户端程序与用户直接交互,虽然有正确规定的操作顺序或模式,但是用户的操作是不可预知的,程序必须处理各种操作错误、加上数据输入有效验证等要求,使得客户端程序的开发成本上升。 State模式在...详情

Factory Method模式在Javamail中的应用

2001年08月16日 - Factory Method模式在Javamail中的应用 - Factory Method模式在Javamail中的应用 - 模式的概念最早是出现在城市建筑领域的。lexander的一本关于建筑的书中明确的给出了模式的概念,用来解决在建筑中的一些问题。后来,这个概念逐渐的被计算机科学所采纳。《Design Patterns: Elements of Reusable Object-Oriented Software》[1](以下简称《...详情

在 Java 中应用设计模式 - Factory Method

2001年09月06日 - 在 Java 中应用设计模式 - Factory Method - 在 Java 中应用设计模式 - Factory Method - FactoryMethod是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了.简单说来,Factory Method可以根据不同的条件产生不同的实例...详情

Observer模式在J2EE中的实现

2002年06月18日 - Observer模式在J2EE中的实现 - Observer模式在J2EE中的实现 - 设计模式是经验的文档化。它是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。更通俗的来说,它是一个问题/解决方案对。一旦我们掌握了设计模式,就等于拥有了一支强有力的专家队伍。它甚至能够使面向对象的新手利用前人的经验找出职责明确的类和对象,从而获得优雅的解决方案。由于设计模式也是重构的目标,如果在设计的初期适当地引入设计模式,可以减少重...详情

深入分析 Java 中的中文编码问题

2011年07月06日 - 深入分析 Java 中的中文编码问题 - 深入分析 Java 中的中文编码问题 - 深入分析 Java 中的中文编码问题 - 不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让...详情

Spring Boot 基础

2017年06月28日 - Spring Boot 基础 - 开始使用 Spring Boot 编写能直接运行的 Spring 应用程序 Spring Boot 基础 - Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。在本教程中,将学习如何使用 Spring Boot 的 starter、特性和可执行 JAR 文件结构,快速创建能直接运行的基于 Spring 的应用程序。 Spring Boot 基础 - 简单介...详情

JUnit 5 新特性

2016年11月09日 - JUnit 5 新特性 - 使用 JUnit 5 进行单元测试 JUnit 5 新特性 - 对于所有的 Java 开发人员来说,你可以没有听说过 Spring 或是 Hibernate 框架,但是一定听说过 JUnit。JUnit 作为 Java 单元测试的鼻祖与事实上的标准,在非常多的项目中被使用。即便新兴的单元测试框架,如 TestNG 等,不断出现,JUnit 的重要性仍然是不言而喻的。目前广泛使用的是 JUnit 4 版本,而 ...详情

提倡使用有帮助的编码

2017年07月11日 - 提倡使用有帮助的编码 - Java 8 习惯用语,第 4 部分 提倡使用有帮助的编码 - Java 8 约定令人惊喜的好处 提倡使用有帮助的编码 - 表达能力是函数式编程的优势之一,但这对您的代码意味着什么?在本文中,我们将比较命令式和函数式代码的示例,判断这两者的表达能力和简洁性的品质。您将了解这些品质如何帮助确保可读性,还会考虑一个反面示例:对简洁性的过度追求导致代码无用。最后,我将介绍 Java 8 对于函数组合中的垂直对齐点的约...详情

传统 for 循环的函数式替代方案

2017年06月05日 - 传统 for 循环的函数式替代方案 - Java 8 习惯用语,第 3 部分 传统 for 循环的函数式替代方案 - 3 个消除复杂迭代中的麻烦的新方法 传统 for 循环的函数式替代方案 - 尽管 for 循环包含许多可变部分,但许多开发人员仍非常熟悉它,并会不假思索地使用它。从 Java™ 8 开始,我们有多个强大的新方法可帮助简化复杂迭代。在本文中,您将了解如何使用 IntStream 方法 range、iterate 和 lim...详情

函数组合与集合管道模式

2017年05月31日 - 函数组合与集合管道模式 - Java 8 习惯用语,第 2 部分 函数组合与集合管道模式 - 迭代 Java 中集合的函数模式 函数组合与集合管道模式 - 在开始采用函数式编程风格时,您的程序中会自然而然地出现一些函数设计模式,但您仍需要努力掌握它们。本文将介绍函数组合和集合管道,您可以结合使用这两种函数式模式来迭代代码中的集合。了解这些模式的结构有助于您搭建自己的 Java™ 程序,从而充分利用高阶函数和拉姆达表达式。 函数组合与集合...详情

Java 中的一种更轻松的函数式编程途径

2017年05月05日 - Java 中的一种更轻松的函数式编程途径 - Java 8 习惯用语,第 1 部分 Java 中的一种更轻松的函数式编程途径 - 以声明方式思考如何在 Java 程序中采用函数方法 Java 中的一种更轻松的函数式编程途径 - Java 开发人员早已习惯了命令式编程和面向对象的编程,因为 Java 语言从第一个版本开始就支持这些格式。在 Java 8 中,我们获得了一组强大的新的函数特性和语法。函数式编程已有数十年的历史,而且与面向对象...详情

Java 语言中 Enum 类型的使用介绍

2013年07月11日 - Java 语言中 Enum 类型的使用介绍 - Java 语言中 Enum 类型的使用介绍 - 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中。而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义相似。不过相比较常量类型,枚举类型可以为申明的变量提供更大的取值范围。 Java 语言中 Enum 类型的使用介绍 - 举个例子来说明一下,如果希望为彩虹描绘...详情

Java的内存泄漏

2002年10月21日 - Java的内存泄漏 - Java的内存泄漏 - Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。 Java的内存泄漏 - 随着越来越多的服务器程序采用Jav...详情

Java 序列化的高级认识

2011年03月16日 - Java 序列化的高级认识 - Java 序列化的高级认识 - 将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStream 进行对象的读写。然而在有些情况下,光知道这些还远远不够,文章列举了笔者遇到的一些真实情境,它们与 ...详情

在 Java 应用程序中使用 Elasticsearch

2016年03月21日 - 在 Java 应用程序中使用 Elasticsearch - 高性能 RESTful 搜索引擎和文档存储快速入门指南 在 Java 应用程序中使用 Elasticsearch - 如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣。尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsearch 项目背后的动机。Elasticsearch(构建于 L...详情

深入探讨 Java 类加载器

2010年03月01日 - 深入探讨 Java 类加载器 - 类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java 应用的开发...详情

正确使用 Volatile 变量

2007年07月05日 - 正确使用 Volatile 变量 - Java 理论与实践 正确使用 Volatile 变量 - volatile 变量使用指南 正确使用 Volatile 变量 - Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍...详情

关于 java.util.concurrent 您不知道的 5 件事,第 2 部分

2010年07月09日 - 关于 java.util.concurrent 您不知道的 5 件事,第 2 部分 - 并发编程意味着更智慧地工作,而不是更困难地工作 关于 java.util.concurrent 您不知道的 5 件事,第 2 部分 - 并发 Collections 提供了线程安全、经过良好调优的数据结构,简化了并发编程。然而,在一些情形下,开发人员需要更进一步,思考如何调节和/或限制线程执行。由于 java.util.concurrent 的总体目...详情

<12345...12>到第页