-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompile.sh
More file actions
executable file
·115 lines (85 loc) · 3.79 KB
/
compile.sh
File metadata and controls
executable file
·115 lines (85 loc) · 3.79 KB
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
#!/bin/bash
# Compiles all design pattern examples into the out/ directory.
# Run this script from the project root.
#
# Usage:
# chmod +x compile.sh
# ./compile.sh
#
# Then run any example with:
# java -cp out <package.ClassName>
set -e # Exit immediately on any compile error
mkdir -p out
echo "=== Compiling Design Pattern Examples ==="
echo "→ StrategyPattern"
javac -d out StrategyPattern/*.java
echo "→ AdapterPattern"
javac -d out AdapterPattern/SimpleAdapter/*.java
echo "→ DecoratorPattern (Basic)"
javac -d out DecoratorPattern/CoffeeExample/*.java
echo "→ DecoratorPattern (Custom IO)"
javac -d out DecoratorPattern/CustomIO/*.java
echo "→ FactoryPattern (Factory Method)"
javac -d out FactoryPattern/FactoryPatternPizzaStore/*.java
echo "→ FactoryPattern (Abstract Factory)"
javac -d out FactoryPattern/AbstractFactoryPatternPizzaStore/*.java
echo "→ Singleton (Simple)"
javac -d out Singleton/SimpleSingleton/*.java
echo "→ Singleton (Multithreading)"
javac -d out Singleton/Multithreading/*.java
echo "→ TemplatePattern (CaffeineBeverageExample)"
javac -d out TemplatePattern/CaffeineBeverageExample/*.java
echo "→ TemplatePattern (JavaSortExample)"
javac -d out TemplatePattern/JavaSortExample/*.java
echo "→ MenuExample"
javac -d out IteratorPattern/MenuExample/*.java
echo "→ MenuJavaUtilsExample"
javac -d out IteratorPattern/MenuJavaUtilsExample/*.java
echo "→ CompositePattern"
javac -d out CompositePattern/*.java
echo "→ CompositeIteratorPattern"
javac -d out CompositeIteratorPattern/*.java
echo "→ StatePattern (FirstTry)"
javac -d out StatePattern/FirstTry/*.java
echo "→ StatePattern (FinalVersion)"
javac -d out StatePattern/FinalVersion/*.java
echo "→ ProxyPattern (VirtualProxy)"
javac -d out ProxyPattern/VirtualProxyPattern/ImageProxy/*.java
echo "→ ProxyPattern (ProtectionProxy)"
javac -d out ProxyPattern/ProtectionProxy/Matchmaking/*.java
echo "→ ProxyPattern (RemoteProxy - Interface Demo)"
javac -d out ProxyPattern/RemoteProxyPattern/RemoteInterfaceDemo/*.java
echo "→ ProxyPattern (RemoteProxy - GumballMachine)"
javac -d out ProxyPattern/RemoteProxyPattern/GumballMachineRemote/*.java
echo "→ MultiPatterns"
javac -d out MultiPatterns/DuckSimulatorExample/*.java
echo "→ MVCPattern (DJExample)"
javac -d out MVCPattern/DJExample/*.java
echo "→ FacadePattern"
javac -d out FacadePattern/*.java
echo "→ ObserverPattern (Manual)"
javac -d out ObserverPattern/ManualExample/*.java
echo "→ CommandPattern (BasicRemote)"
javac -d out CommandPattern/BasicRemote/*.java
echo "→ CommandPattern (LambdaRemote)"
javac -d out CommandPattern/LambdaRemote/*.java
# Note: ObserverPattern/JavaBuiltInExample is intentionally excluded.
# It uses java.util.Observable which was deprecated in Java 9 and removed in Java 11+.
# To compile it manually (requires Java 8): javac -d out ObserverPattern/JavaBuiltInExample/*.java
echo ""
echo "=== All examples compiled successfully ==="
echo ""
echo "Run examples:"
echo " java -cp out StrategyPattern.MiniDuckSimulator"
echo " java -cp out AdapterPattern.SimpleAdapter.DuckTestDrive"
echo " java -cp out TemplatePattern.CaffeineBeverageExample.CaffeineBeverageTest"
echo " java -cp out IteratorPattern.MenuExample.MenuTestDrive"
echo " java -cp out CompositePattern.MenuTestDrive"
echo " java -cp out StatePattern.FinalVersion.GumballMachineTestDrive"
echo " java -cp out ProxyPattern.VirtualProxyPattern.ImageProxy.ImageProxyTestDrive"
echo " java -cp out MultiPatterns.DuckSimulatorExample.DuckSimulator"
echo " java -cp out MVCPattern.DJExample.DJTestDrive"
echo " java -cp out FacadePattern.HomeTheaterTestDrive"
echo " java -cp out ObserverPattern.ManualExample.WeatherStation"
echo " java -cp out CommandPattern.BasicRemote.RemoteControlTest"
echo " java -cp out CommandPattern.LambdaRemote.RemoteControlTest"