设计模式三之建造者模式

建造者模式

场景

​ 当需要生产一辆汽车时,我们需要为其装配发动机、轮胎、座椅等等部件,这个装配过程是比较复杂的而且也需要较高的组装技术。而建造者模式(Builder Pattern)就是为了将部件与组装分离开。

阅读全文
每日一题之组合两个表

组合两个表

表1: Person

1
2
3
4
5
6
7
8
+-------------+---------+
| 列名 | 类型 |
+-------------+---------+
| PersonId | int |
| FirstName | varchar |
| LastName | varchar |
+-------------+---------+
# PersonId 是上表主键
阅读全文
Java中对象以及属性的拷贝

前言

​ Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,本文会试图澄清这一概念。并且由于Java不能 通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。本文会让你了解什么是影子clone与深度 clone,认识它们的区别、优点及缺点。
​ 看到这个标题,是不是有点困惑:Java语言明确说明取消了指针,因为指针往往是在带来方便的同时也是导致代码不安全的根源,同时也会使程序的变得非常复 杂难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的”GOTO”语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确 的指针定义,实质上每一个new语句返回的都是一个指针的引用,只不过在大多时候Java中不用关心如何操作这个”指针”,更不用象在操作C++的指针那 样胆战心惊。唯一要多多关心的是在给函数传递对象的时候。

阅读全文
设计模式二之工厂模式

工厂模式

工厂模式主要是为创建对象提供接口,将创建对象的过程隔离起来,实现了创建者与调用者的分离,提高了程序的灵活性。

核心本质:

  • 实例化对象,用工厂方法代替new操作。
  • 将选择实现类、创建对象统一管理和控制,从而将调用者跟我们实现类解耦。

工厂模式分类

  • 简单工厂模式(Simple Factory)
  • 工厂方法模式(Factory Method)
  • 抽象工厂模式(Abstract Factory)
阅读全文
每日一题之阶乘后的零

阶乘后的零

给定一个整数n,返回n!结果尾数中零的数量。

阅读全文
设计模式一之单例模式

单例模式

定义

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。

阅读全文
每日一题之Excel表序号

Excel表序号

给定一个Excel表格中的列名称,返回其相应的列序号。

阅读全文
Thymeleaf的使用

Thymeleaf的优点

  • Java模板引擎,能够处理HTML、XML、JavaScript、CSS甚至是纯文本,类似于JSP、Freemarker
  • 自然模板,原型即页面
  • 语法优雅易懂,可以使用OGNL、SpringEL
  • 遵从WEB标准,支持HTML5
阅读全文
Algolia