一个计算机技术爱好者与学习者

0%

需求场景

在Java中,经常需要将一类对象放到List、Set、Map等容器中,而且通常需要对容器中的对象进行遍历访问。那么如何实现对这些容器的遍历呢?当然,每个容器本身都提供了遍历的方法。但是这些方法是不统一的,客户端的使用变得麻烦。

阅读全文 »

现实场景

在销售产品时,为了促销,经常会进行打折。针对不同的时间、不同的消费群体,采用的打折策略也会不同。比如有的打八折,有的买一送一。这种动态的调整销售策略的行为,就是策略模式在现实生活中的应用。

阅读全文 »

现实场景

每当有最新一期的报纸出版时,送报员都会按照订阅者的名单,把最新的报纸按时送到订阅者手里。而且订阅者也可以随时退订或者订阅其他的报纸,这就是观察者在现实生活中的应用。

阅读全文 »

场景

有一个报表打印程序,用户规定必须要打印表头、正文、表尾三个部分。

一般思路:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Report {
public void print()
{
printTitle();
printBody();
printTail();
}

public void printTitle()
{
System.out.println("采用一种方式打印表头");
}

public void printBody()
{
System.out.println("采用一种方式打印正文");
}

public void printTail()
{
System.out.println("采用一种方式打印表尾");
}
}
阅读全文 »

设计模式简介

1979年,建筑师亚历山大编写了《建筑的永恒之道》,这本书阐述了建筑与规划的新观点。作者通过对当代建筑的研究发现:优秀的建筑中,总是存在着一些相似之处。如果能够找出这些优秀建筑的特征,就能够找到这些建筑是采用了哪些方法,如何设计才变得优秀的,从而也就能够客观评价一个建筑设计的好坏。通过找出并掌握这些优秀建筑的设计方法,建筑师就可以把这些方法复制到其他的建筑设计中,从而设计出同样优秀的建筑来。

建筑行业中存在的情况和软件行业存在的情况类似。在软件行业,是否也能够从那些优秀的软件中,找到一些相同的特征、优秀的设计方法,从而使软件开发人员能够掌握这些方法,并将其应用到其他的软件开发中,从而也开发出同样优秀的软件呢?

为了探讨这个问题,很多软件开发人员开始了这方面的研究,其中影响最大的文献是《设计模式》一书,该书的四个作者被称为GoF或Gang of Four。这本书总结了人类历史上软件开发的经验,给出了描述模式的一些特征,并提炼出用于指导软件设计的23种模式和一些面向对象的设计方法。

阅读全文 »