Contributed by Scott Anderson
Presenting the DOS BATCH FILE POLYMORPHISM EXAMPLE!!!!@echo off echo @echo off > %1.bat REM set up shape variables echo set x=%2 >>%1.bat echo set y=%3 >> %1.bat REM set up a method for all shapes echo set moveto=mvshape >> %1.bat |
REM tack the new values on the end REM since the "objects" are stored as batch files, REM these lines will get executed last every time REM the object is loaded. echo set x=%2 >> %1.bat echo set y=%3 >> %1.bat |
@echo off REM inherit the shape stuff call shape %1 %2 %3 REM add rectangle-specific vars echo set width=%4 >> %1.bat echo set height=%5 >> %1.bat REM add rectangle-specific methods echo set draw=drawrec >> %1.bat echo set setwidth=recsetw >> %1.bat |
REM load the rectangle call %1 REM Draw the rectangle echo Drawing rectangle at: (%x%, %y%) width=%width%, height=%height% |
@echo off REM set the width of the rectangle echo set width=%2 >> %1.bat |
REM Make a circle REM Inherit the shape stuff call shape %1 %2 %3 REM set up circle-specific variables echo set radius=%4 >> %1.bat REM add a circle draw method echo set draw=drawcirc >> %1.bat |
REM load the circle call %1 REM draw the circle echo Drawing circle at: (%x%, %y%) radius=%radius% |
@echo off REM load the shape call %1 REM call the shape's draw method call %draw% %1 REM move the shape call %moveto% %1 100 100 REM call the shape's draw method call %draw% %1 |
@echo off REM polymorphic batch file example REM November 8, 1999 - Scott Anderson REM Make a rectangle and a circle. call rect rec1 10 20 5 6 call circle circ1 15 25 8 REM loop through the shapes and polymorphically call their methods for %%V in (rec1 circ1) do call doit %%V REM make a rectangle call rect rec2 0 0 15 15 call rec2 call %setwidth% rec2 30 call %draw% rec2 |