Mi viene in mente una classe tipo factory o comunque una classe master che gestisca l'esecuzione di N classi. (magari salvate in un arraylist)
una cosa del genere :
'interfaccia comune a tutte le classi che devono eseguire qualcosa
interface Exec
function Exec() as boolean
function RollBack() as boolean
end interface
' Alcune classi che implementano i due metodi
class A
implements InterfaceExec
function Exec
// Codice da eseguire
if OK return true
else return false
end sub
sub RollBack
// Codice di rollback
end sub
end class
class B
implements InterfaceExec
function Exec
// Codice da eseguire
if OK return true
else return false
end sub
sub RollBack
// Codice di rollback
end sub
end class
' La classe master che gestisce l'esecuzione (seriale?)
class Master
public ToExec as new ArrayList
funtion Execute()
dim i as integer
for i = 0 to toExec.count -1
if not toExec(i).Exec then
RollBack(i)
exit function
end if
next i
end function
// esegue il rollback delle i classi precedenti
function RollBack(i as integer)
for j = 0 to i
ToExec(j).RollBack
next j
end function
end class
class pgm()
sub Main()
dim lavoro1 as new A
dim lavoro2 as new B
dim m as new Master
m.ToExec.add(lavoro1)
m.toExec.add(lavoro2)
m.Execute
end sub
end class
non so quando sia corretta una cosa del genere.... 
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/