Add all 23 GoF design pattern implementations (2026-06-13)
This commit is contained in:
80
run-all.bat
Normal file
80
run-all.bat
Normal file
@@ -0,0 +1,80 @@
|
||||
@echo off
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
set BASE=%~dp0
|
||||
set JAVAC="C:\Program Files\Eclipse Adoptium\jdk-17.0.7.7-hotspot\bin\javac.exe"
|
||||
set JAVA="C:\Program Files\Eclipse Adoptium\jdk-17.0.7.7-hotspot\bin\java.exe"
|
||||
set LOG=%BASE%output.log
|
||||
|
||||
echo Design Patterns - Compile and Run > "%LOG%"
|
||||
echo Java: 17.0.7 (Eclipse Temurin) >> "%LOG%"
|
||||
echo ================================ >> "%LOG%"
|
||||
|
||||
:: Create output dirs
|
||||
for %%P in (adapter bridge composite decorator facade flyweight proxy) do (
|
||||
if not exist "%BASE%out\%%P" mkdir "%BASE%out\%%P"
|
||||
)
|
||||
|
||||
:: Function-like subroutine to compile a package
|
||||
:: Usage: CALL :compile_pkg <package> <relative_src_dir>
|
||||
|
||||
:: --- ADAPTER ---
|
||||
echo. >> "%LOG%"
|
||||
echo === ADAPTER === >> "%LOG%"
|
||||
set FILES=
|
||||
for %%f in ("%BASE%02-structural\adapter\*.java") do set FILES=!FILES! "%%f"
|
||||
%JAVAC% -d "%BASE%out\adapter" !FILES! >> "%LOG%" 2>&1
|
||||
if not errorlevel 1 (%JAVA% -cp "%BASE%out\adapter" adapter.Main >> "%LOG%" 2>&1)
|
||||
|
||||
:: --- BRIDGE ---
|
||||
echo. >> "%LOG%"
|
||||
echo === BRIDGE === >> "%LOG%"
|
||||
set FILES=
|
||||
for %%f in ("%BASE%02-structural\bridge\*.java") do set FILES=!FILES! "%%f"
|
||||
%JAVAC% -d "%BASE%out\bridge" !FILES! >> "%LOG%" 2>&1
|
||||
if not errorlevel 1 (%JAVA% -cp "%BASE%out\bridge" bridge.Main >> "%LOG%" 2>&1)
|
||||
|
||||
:: --- COMPOSITE ---
|
||||
echo. >> "%LOG%"
|
||||
echo === COMPOSITE === >> "%LOG%"
|
||||
set FILES=
|
||||
for %%f in ("%BASE%02-structural\composite\*.java") do set FILES=!FILES! "%%f"
|
||||
%JAVAC% -d "%BASE%out\composite" !FILES! >> "%LOG%" 2>&1
|
||||
if not errorlevel 1 (%JAVA% -cp "%BASE%out\composite" composite.Main >> "%LOG%" 2>&1)
|
||||
|
||||
:: --- DECORATOR ---
|
||||
echo. >> "%LOG%"
|
||||
echo === DECORATOR === >> "%LOG%"
|
||||
set FILES=
|
||||
for %%f in ("%BASE%02-structural\decorator\*.java") do set FILES=!FILES! "%%f"
|
||||
%JAVAC% -d "%BASE%out\decorator" !FILES! >> "%LOG%" 2>&1
|
||||
if not errorlevel 1 (%JAVA% -cp "%BASE%out\decorator" decorator.Main >> "%LOG%" 2>&1)
|
||||
|
||||
:: --- FACADE ---
|
||||
echo. >> "%LOG%"
|
||||
echo === FACADE === >> "%LOG%"
|
||||
set FILES=
|
||||
for %%f in ("%BASE%02-structural\facade\*.java") do set FILES=!FILES! "%%f"
|
||||
%JAVAC% -d "%BASE%out\facade" !FILES! >> "%LOG%" 2>&1
|
||||
if not errorlevel 1 (%JAVA% -cp "%BASE%out\facade" facade.Main >> "%LOG%" 2>&1)
|
||||
|
||||
:: --- FLYWEIGHT ---
|
||||
echo. >> "%LOG%"
|
||||
echo === FLYWEIGHT === >> "%LOG%"
|
||||
set FILES=
|
||||
for %%f in ("%BASE%02-structural\flyweight\*.java") do set FILES=!FILES! "%%f"
|
||||
%JAVAC% -d "%BASE%out\flyweight" !FILES! >> "%LOG%" 2>&1
|
||||
if not errorlevel 1 (%JAVA% -cp "%BASE%out\flyweight" flyweight.Main >> "%LOG%" 2>&1)
|
||||
|
||||
:: --- PROXY ---
|
||||
echo. >> "%LOG%"
|
||||
echo === PROXY === >> "%LOG%"
|
||||
set FILES=
|
||||
for %%f in ("%BASE%02-structural\proxy\*.java") do set FILES=!FILES! "%%f"
|
||||
%JAVAC% -d "%BASE%out\proxy" !FILES! >> "%LOG%" 2>&1
|
||||
if not errorlevel 1 (%JAVA% -cp "%BASE%out\proxy" proxy.Main >> "%LOG%" 2>&1)
|
||||
|
||||
echo. >> "%LOG%"
|
||||
echo [DONE] >> "%LOG%"
|
||||
|
||||
notepad "%LOG%"
|
||||
Reference in New Issue
Block a user