Skip to content

Commit 2a71b69

Browse files
committed
add readme
1 parent fbcdc38 commit 2a71b69

File tree

182 files changed

+2655
-55
lines changed

Some content is hidden

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

182 files changed

+2655
-55
lines changed

abstract-factory/c/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- func.h # 头文件,定义接口和数据类型
5+
- abstract_factory.c # 抽象工厂接口,定义在header
6+
- shop_factory.c # 具体工厂类之一,负责Shop生产,继承抽象工厂
7+
- vehicle_factory.c # 具体工厂类之一,负责Vehichle生产,继承抽象工厂
8+
- factory_creator.c # 工厂创建类,根据产品类别创建不同的工厂
9+
+ shop # Shop类产品文件夹
10+
- shop.c # Shop接口,定义在header
11+
- sgency_shop.ajva # Shop具体实现之一
12+
- direct_sale.c # Shop具体实现之一
13+
- supermarket_shop.c # Shop具体实现之一
14+
+ vehicle # Vehicle类产品文件夹
15+
- vehicle.c # Vehicle接口,定义在header
16+
- bus.c # Vehicle具体实现之一
17+
- car.c # Vehicle具体实现之一
18+
- motorcycle.c # Vehicle具体实现之一
19+
- van # Vehicle具体实现之一
20+
```
21+
22+
## 测试验证
23+
24+
```shell
25+
$ cd ./abstract-factory/c
26+
$ gcc src/**/*.c test/*.c
27+
$ ./a.out
28+
```

abstract-factory/c/test/test.c

+2-3
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,9 @@ int main(void)
6969
return 0;
7070
}
7171

72+
// jarry@jarrys-MacBook-Pro c % gcc src/**/*.c test/*.c
73+
// jarry@jarrys-MacBook-Pro c % ./a.out
7274
/**
73-
// 注释编译告警,请先删除`/*`等注释 within block comment [-Wcomment]
74-
jarry@jarrys-MacBook-Pro c % gcc src/**/*.c test /*.c
75-
jarry@jarrys-MacBook-Pro c % ./a.out
7675
test start:
7776
7877
bus_run() [name=bus_01]

abstract-factory/go/README.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- AbstractFactory.go # 抽象工厂类,定义工厂概念,被具体的工厂所继承
5+
- ShopFactory.go # 具体工厂类之一,负责Shop生产,继承抽象工厂
6+
- VehicleFactory.go # 具体工厂类之一,负责Vehichle生产,继承抽象工厂
7+
- FactoryCreator.go # 工厂创建类,根据产品类别创建不同的工厂
8+
+ shop # Shop类产品文件夹
9+
- Shop.go # Shop接口
10+
- AgencyShop.ajva # Shop具体实现之一
11+
- DirectSale.go # Shop具体实现之一
12+
- SupermarketShop.go # Shop具体实现之一
13+
+ vehicle # Vehicle类产品文件夹
14+
- Vehicle.go # Vehicle接口
15+
- Bus.go # Vehicle具体实现之一
16+
- Car.go # Vehicle具体实现之一
17+
- Motorcycle.go # Vehicle具体实现之一
18+
- Van # Vehicle具体实现之一
19+
- VehicleType.go # Vehicle的类型
20+
```
21+
22+
## 测试验证
23+
24+
```shell
25+
$ cd ./abstract-factory/go
26+
$ go run test/test.go
27+
```

abstract-factory/java/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- AbstractFactory.java # 抽象工厂类,定义工厂概念,被具体的工厂所继承
5+
- ShopFactory.java # 具体工厂类之一,负责Shop生产,继承抽象工厂
6+
- VehicleFactory.java # 具体工厂类之一,负责Vehichle生产,继承抽象工厂
7+
- FactoryCreator.java # 工厂创建类,根据产品类别创建不同的工厂
8+
+ shop # Shop类产品文件夹
9+
- Shop.java # Shop接口
10+
- AgencyShop.ajva # Shop具体实现之一
11+
- DirectSale.java # Shop具体实现之一
12+
- SupermarketShop.java # Shop具体实现之一
13+
+ vehicle # Vehicle类产品文件夹
14+
- Vehicle.java # Vehicle接口
15+
- Bus.java # Vehicle具体实现之一
16+
- Car.java # Vehicle具体实现之一
17+
- Motorcycle.java # Vehicle具体实现之一
18+
- Van # Vehicle具体实现之一
19+
- VehicleType.java # Vehicle的类型
20+
```
21+
22+
## 测试验证
23+
24+
```shell
25+
$ cd ./abstract-factory/java
26+
$ javac test/Test.java
27+
$ java test/Test
28+
```

abstract-factory/java/src/AbstractFactory.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
如何解决:在一个产品系列里面,定义多个产品对象。由抽象类来负责创建产品工厂。
1111
*/
1212
public abstract class AbstractFactory {
13-
public abstract AbstractVehicle getVehicle(VehicleType type);
13+
public abstract Vehicle getVehicle(VehicleType type);
1414
public abstract Shop getShop(String name);
1515
}

abstract-factory/java/src/ShopFactory.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public Shop getShop(String name) {
1919
}
2020

2121
@Override
22-
public AbstractVehicle getVehicle(VehicleType type) {
22+
public Vehicle getVehicle(VehicleType type) {
2323
return null;
2424
}
2525
}

abstract-factory/java/src/VehicleFactory.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*/
77
public class VehicleFactory extends AbstractFactory {
88
@Override
9-
public AbstractVehicle getVehicle(VehicleType type) {
9+
public Vehicle getVehicle(VehicleType type) {
1010
switch (type) {
1111
case BUS:
1212
return new Bus();

abstract-factory/js/README.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- AbstractFactory.js # 抽象工厂基类,定义工厂概念,被具体的工厂所继承
5+
- ShopFactory.js # 具体工厂类之一,负责Shop生产,继承抽象工厂
6+
- VehicleFactory.js # 具体工厂类之一,负责Vehichle生产,继承抽象工厂
7+
- FactoryCreator.js # 工厂创建类,根据产品类别创建不同的工厂
8+
+ shop # Shop类产品文件夹
9+
- Shop.js # Shop基类
10+
- AgencyShop.ajva # Shop具体实现之一
11+
- DirectSale.js # Shop具体实现之一
12+
- SupermarketShop.js # Shop具体实现之一
13+
+ vehicle # Vehicle类产品文件夹
14+
- Vehicle.js # Vehicle基类
15+
- Bus.js # Vehicle具体实现之一
16+
- Car.js # Vehicle具体实现之一
17+
- Motorcycle.js # Vehicle具体实现之一
18+
- Van # Vehicle具体实现之一
19+
```
20+
21+
## 测试验证
22+
23+
```shell
24+
$ cd ./abstract-factory/js
25+
$ node test/test.js
26+
```

abstract-factory/python/README.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- AbstractFactory.py # 抽象工厂基类,定义工厂概念,被具体的工厂所继承
5+
- ShopFactory.py # 具体工厂类之一,负责Shop生产,继承抽象工厂
6+
- VehicleFactory.py # 具体工厂类之一,负责Vehichle生产,继承抽象工厂
7+
- FactoryCreator.py # 工厂创建类,根据产品类别创建不同的工厂
8+
+ shop # Shop类产品文件夹
9+
- Shop.py # Shop基类
10+
- AgencyShop.ajva # Shop具体实现之一
11+
- DirectSale.py # Shop具体实现之一
12+
- SupermarketShop.py # Shop具体实现之一
13+
+ vehicle # Vehicle类产品文件夹
14+
- Vehicle.py # Vehicle基类
15+
- Bus.py # Vehicle具体实现之一
16+
- Car.py # Vehicle具体实现之一
17+
- Motorcycle.py # Vehicle具体实现之一
18+
- Van # Vehicle具体实现之一
19+
```
20+
21+
## 测试验证
22+
23+
```shell
24+
$ cd ./abstract-factory/python
25+
$ python test/test.py
26+
```

abstract-factory/ts/README.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- AbstractFactory.ts # 抽象工厂基类,定义工厂概念,被具体的工厂所继承
5+
- ShopFactory.ts # 具体工厂类之一,负责Shop生产,继承抽象工厂
6+
- VehicleFactory.ts # 具体工厂类之一,负责Vehichle生产,继承抽象工厂
7+
- FactoryCreator.ts # 工厂创建类,根据产品类别创建不同的工厂
8+
+ shop # Shop类产品文件夹
9+
- Shop.ts # Shop基类
10+
- AgencyShop.ajva # Shop具体实现之一
11+
- DirectSale.ts # Shop具体实现之一
12+
- SupermarketShop.ts # Shop具体实现之一
13+
+ vehicle # Vehicle类产品文件夹
14+
- Vehicle.ts # Vehicle基类
15+
- Bus.ts # Vehicle具体实现之一
16+
- Car.ts # Vehicle具体实现之一
17+
- Motorcycle.ts # Vehicle具体实现之一
18+
- Van # Vehicle具体实现之一
19+
```
20+
21+
## 测试验证
22+
23+
```shell
24+
$ cd ./abstract-factory/ts
25+
$ tsc
26+
$ node test/test.js
27+
```

adapter-pattern/c/README.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- func.c # 头文件,定义接口与类型
5+
- media_player.c # 媒体基础接口,供具体类实现
6+
- audio_player.c # 具体实现类之一,负责Audio播放
7+
- hls_player.c # 具体实现类之一,负责HLS播放
8+
- mp4_player.c # 具体实现类之一,负责MP4播放
9+
- player_adapter.c # 适配器类,对外提供接口,队内分发调用。可以实现或不实现基础接口
10+
```
11+
12+
## 测试验证
13+
14+
```shell
15+
$ cd ./adapter-pattern/c
16+
$ gcc src/*.c test/test.c
17+
$ ./a.out
18+
```

adapter-pattern/c/test/test.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ int main(void)
4444
return 0;
4545
}
4646

47+
// jarry@jarrys-MacBook-Pro c % gcc src/*.c test/test.c
48+
// jarry@jarrys-MacBook-Pro c % ./a.out
4749
/**
48-
jarry@jarrys-MacBook-Pro c % gcc test/test.c src/*.c
49-
jarry@jarrys-MacBook-Pro c % ./a.out
5050
test start:
5151
5252
player_adapter_constructor() [name=adapter1]

adapter-pattern/go/README.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- MediaPlayer.go # 媒体基础接口,供具体类实现
5+
- AudioPlayer.go # 具体实现类之一,负责Audio播放。
6+
- HlsPlayer.go # 具体实现类之一,负责HLS播放。
7+
- Mp4Player.go # 具体实现类之一,负责MP4播放。
8+
- PlayerAdapter.go # 适配器类,对外提供接口,队内分发调用。可以实现或不实现基础接口。
9+
```
10+
11+
## 测试验证
12+
13+
```shell
14+
$ cd ./adapter-pattern/go
15+
$ go run test/test.go
16+
```

adapter-pattern/java/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- MediaPlayer.java # 媒体基础接口,供具体类实现
5+
- AudioPlayer.java # 具体实现类之一,负责Audio播放
6+
- HlsPlayer.java # 具体实现类之一,负责HLS播放
7+
- Mp4Player.java # 具体实现类之一,负责MP4播放
8+
- PlayerAdapter.java # 适配器类,对外提供接口,队内分发调用。可以实现或不实现基础接口
9+
```
10+
11+
## 测试验证
12+
13+
```shell
14+
$ cd ./adapter-pattern/java
15+
$ javac test/Test.java
16+
$ java test/Test
17+
```

adapter-pattern/js/README.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- MediaPlayer.js # 媒体基础类,供具体类继承
5+
- AudioPlayer.js # 具体实现类之一,负责Audio播放
6+
- HlsPlayer.js # 具体实现类之一,负责HLS播放
7+
- Mp4Player.js # 具体实现类之一,负责MP4播放
8+
- PlayerAdapter.js # 适配器类,对外提供接口,队内分发调用。可以实现或不实现基础接口
9+
```
10+
11+
## 测试验证
12+
13+
```shell
14+
$ cd ./adapter-pattern/js
15+
$ node test/test.js
16+
```

adapter-pattern/python/README.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- MediaPlayer.py # 媒体基础类,供具体类继承
5+
- AudioPlayer.py # 具体实现类之一,负责Audio播放
6+
- HlsPlayer.py # 具体实现类之一,负责HLS播放
7+
- Mp4Player.py # 具体实现类之一,负责MP4播放
8+
- PlayerAdapter.py # 适配器类,对外提供接口,队内分发调用。可以实现或不实现基础接口
9+
```
10+
11+
## 测试验证
12+
13+
```shell
14+
$ cd ./adapter-pattern/python
15+
$ python test/test.py
16+
```

adapter-pattern/ts/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- MediaPlayer.ts # 媒体基础接口,供具体类继承
5+
- AudioPlayer.ts # 具体实现类之一,负责Audio播放
6+
- HlsPlayer.ts # 具体实现类之一,负责HLS播放
7+
- Mp4Player.ts # 具体实现类之一,负责MP4播放
8+
- PlayerAdapter.ts # 适配器类,对外提供接口,队内分发调用。可以实现或不实现基础接口
9+
```
10+
11+
## 测试验证
12+
13+
```shell
14+
$ cd ./adapter-pattern/ts
15+
$ tsc
16+
$ node test/test.js
17+
```

bridge-pattern/c/README.md

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- func.h # 头文件,定义接口与数据
5+
- abstract_shape.c # 桥接抽象类,关联具体的操作接口,供具体类实现
6+
- refined_shape.c # 具体桥接类,继承抽象桥接类,扩充了自己的方法
7+
- draw_tool.c # 工具基础接口,供具体工具类实现
8+
- draw_styeA.c # 具体工具类一,负责某类专门处理
9+
- draw_styleB.c # 具体工具类二,负责某类专门处理
10+
11+
```
12+
13+
## 测试验证
14+
15+
```shell
16+
$ cd ./bridge-pattern/c
17+
$ gcc test/test.c src/*.c
18+
$ ./a.out
19+
```

bridge-pattern/c/test/test.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ int main(void)
3939
return 0;
4040
}
4141

42+
// jarry@jarrys-MacBook-Pro c % gcc test/test.c src/*.c
43+
// jarry@jarrys-MacBook-Pro c % ./a.out
4244
/**
43-
jarry@jarrys-MacBook-Pro c % gcc test/test.c src/*.c
44-
jarry@jarrys-MacBook-Pro c % ./a.out
4545
test start:
4646
4747
refined_shape_constructor() [name=shape1]

bridge-pattern/go/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- AbstractShape.go # 桥接抽象类,关联具体的操作接口,供具体类实现
5+
- RefinedShape.go # 具体桥接类,继承抽象桥接类,扩充了自己的方法
6+
- DrawTool.go # 工具基础接口,供具体工具类实现
7+
- DrawStyeA.go # 具体工具类一,负责某类专门处理
8+
- DrawStyleB.go # 具体工具类二,负责某类专门处理
9+
10+
```
11+
12+
## 测试验证
13+
14+
```shell
15+
$ cd ./bridge-pattern/go
16+
$ go run test/test.go
17+
```

bridge-pattern/java/README.md

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## 代码结构
2+
```shell
3+
- src
4+
- AbstractShape.java # 桥接抽象类,关联具体的操作接口,供具体类实现
5+
- RefinedShape.java # 具体桥接类,继承抽象桥接类,扩充了自己的方法
6+
- DrawTool.java # 工具基础接口,供具体工具类实现
7+
- DrawStyeA.java # 具体工具类一,负责某类专门处理
8+
- DrawStyleB.java # 具体工具类二,负责某类专门处理
9+
10+
```
11+
12+
## 测试验证
13+
14+
```shell
15+
$ cd ./bridge-pattern/java
16+
$ javac test/Test.java
17+
$ java test/Test
18+
```

0 commit comments

Comments
 (0)