[实验任务一]:组合模式
用透明组合模式实现教材中的“文件夹浏览”这个例子。
实验要求:
1.文件的执行不需真正实现,只需简单提示即可;(类图)
2.提交源代码;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
public abstract class AbstractFile { public abstract void add(AbstractFile ele); public abstract void remove(AbstractFile ele); public abstract void display(); } import java.util.ArrayList; public class Folder extends AbstractFile{ private String filename; private ArrayList al= new ArrayList<>(); public Folder(String f) { filename=f; } @Override public void add(AbstractFile ele) { // TODO Auto-generated method stub al.add(ele); System.out.println( "Folder add" ); } @Override public void remove(AbstractFile ele) { // TODO Auto-generated method stub al.remove(ele); System.out.println( "Folder remove" ); } @Override public void display() { // TODO Auto-generated method stub for (Object object:al) { ((AbstractFile)object).display(); } System.out.println( "Folder:display" ); } } public class ImageFile extends AbstractFile{ private String filename; public ImageFile(String f) { filename=f; } @Override public void add(AbstractFile ele) { // TODO Auto-generated method stub System.out.println( "添加Image文件" ); } @Override public void remove(AbstractFile ele) { // TODO Auto-generated method stub System.out.println( "删除Image文件" ); } @Override public void display() { // TODO Auto-generated method stub System.out.println( "展示Image文件" +filename); } } public class TextFile extends AbstractFile{ private String filename; public TextFile(String f) { filename=f; } @Override public void add(AbstractFile ele) { // TODO Auto-generated method stub System.out.println( "添加Text文件" ); } @Override public void remove(AbstractFile ele) { // TODO Auto-generated method stub System.out.println( "删除Text文件" ); } @Override public void display() { // TODO Auto-generated method stub System.out.println( "展示Text文件" +filename); } } public class VideoFile extends AbstractFile{ private String filename; public VideoFile(String f) { filename=f; } @Override public void add(AbstractFile ele) { // TODO Auto-generated method stub System.out.println( "添加Video文件" ); } @Override public void remove(AbstractFile ele) { // TODO Auto-generated method stub System.out.println( "删除Video文件" ); } @Override public void display() { // TODO Auto-generated method stub System.out.println( "展示Video文件" +filename); } } public class Client { public static void main(String a[]) { AbstractFile obj1,obj2,obj3,obj4,obj5; Folder plate1,plate2,plate3; obj1= new ImageFile( "aaa.png" ); obj2= new TextFile( "bbb.txt" ); plate1= new Folder( "ccc" ); plate1.add(obj1); plate1.add(obj2); obj3= new VideoFile( "ddd.mp3" ); obj4= new VideoFile( "eee.mp3" ); plate2= new Folder( "fff" ); plate2.add(obj3); plate2.add(obj4); obj5= new ImageFile( "ggg.jpg" ); plate3= new Folder( "hhh" ); plate3.add(plate1); plate3.add(plate2); plate3.add(obj5); plate3.display(); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步