Skip to content

Commit 6576990

Browse files
committed
add flyweight pattern
1 parent 9d56b9c commit 6576990

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+824
-8
lines changed

abstract-factory/README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# 简介
2-
抽象工厂模式(Abstract Factory Pattern)是一个超级工厂,用来创建其他的工厂。
3-
工厂方法是一个具体工厂,用来创建对象,而抽象工厂则是用来创建工厂的类。
2+
抽象工厂模式(Abstract Factory Pattern)属于创建者模式,是一个超级工厂,主要用来创建其他的工厂。工厂方法是一个具体工厂,用来创建对象,而抽象工厂则是用来创建工厂的类。
43

5-
抽象工厂属于创建型模式,它为访问类提供一个创建一组相互依赖对象的接口,且访问类无须指定具体类就能得到同类下不同等级的对象的模式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
4+
它为访问类提供一个创建一组相互依赖对象的接口,且访问类无须指定具体类就能得到同类下不同等级的对象的模式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
65

76
如果代码需要与多个不同系列的相关产品交互,但是无法提前获取产品信息, 出于对未来扩展的考虑,不希望代码基于产品的具体实现进行构建,这时可以使用抽象工厂。
87

builder-pattern/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# 简介
2-
建造者模式(Builder Pattern),也叫生成器模式。使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它允许你使用相同的创建代码生成不同类型和形式的对象。
2+
建造者模式(Builder Pattern),也叫生成器模式,属于创建型模式。使用多个简单的对象一步一步构建成一个复杂的对象。它允许你使用相同的创建代码生成不同类型和形式的对象。
33

44
当你希望使用代码创建不同形式的产品 (例如各种商品和订单) 时, 一些基本部件不会变,而其组合经常变化的时候,就可以考虑建造者模式。
55

composite-pattern/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# 简介
2-
组合模式(Composite Pattern),又叫部分整体模式是一种结构型设计模式。用于把一组类似的对象当作一个单一对象来看。组合模式依据树形结构来组合对象,用来构建某个部分或整体对象。
2+
组合模式(Composite Pattern),又叫部分整体模式,是一种结构型设计模式。用于把一组类似的对象当作一个单一对象来看。组合模式依据树形结构来组合对象,用来构建某个部分或整体对象。
33

44
如果你需要实现树状对象结构,可以使用组合模式。如果你希望客户端代码以相同方式处理简单和复杂元素,可以使用该模式。
55

docs/design-pattern.png

-167 KB
Loading

docs/uml/design-pattern-source2.eddx

5.54 KB
Binary file not shown.

docs/uml/facade-pattern.png

12.4 KB
Loading

docs/uml/flyweight-pattern.png

12.2 KB
Loading

facade-pattern/README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# 简介
2+
外观模式(Facade Pattern),是一种结构型设计模式。它向现有的系统添加一个高层接口,隐藏子系统的复杂性,这个接口使得子系统更加容易使用。
3+
4+
如果你需要一个指向复杂子系统的直接接口,且该接口的功能有限,则可以使用外观模式。或者需要将子系统组织为多层结构,可以使用外观。
5+
6+
# 作用
7+
1. 让业务代码通过统一接口与内部子系统隔离。
8+
2. 降低访问内部子系统时的复杂度,简化客户端之间的接口。
9+
10+
# 实现步骤
11+
1. 创建统一外观接口和实现类,用于衔接调用方与子系统。
12+
2. 创建不同子模块/子模块,这些子模块可以共同实现某通用接口,也可以各自独立。
13+
3. 通过统一外观接口来访问这些复杂子类。
14+
15+
# UML
16+
<img src="../docs/uml/facade-pattern.png">
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package src;
2+
3+
// 外观模式的接口或抽象类,可选
4+
public interface AbstractFacade {
5+
public void encoding(int id);
6+
7+
public void encrypt(int id);
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package src;
2+
3+
// 编码模块
4+
public class EncodeModule {
5+
public void encoding() {
6+
System.out.println(this.getClass().getName() + "::encoding() 进行编码处理。");
7+
}
8+
}

0 commit comments

Comments
 (0)