Ha jól értelek, arra gondolsz, hogy úgy hívják meg az objektum (amelyik eltette az erőforrás referenciáját) egy függvényét, hogy már a close(resource) meghívódott, de az objektum nem kapott új erőforrást.
Szerintem ilyen esetben mindenképp rosszul működik a program.
A mi esetünkben lezárt erőforrást akar használni (még ez a legjobb működés).
Más esetben pedig vagy nincs erőforrás beállítva (nem írta felül a korábbit), vagy ha megvan még a régi resource, akkor pedig nem szabadna használni, mert az üzleti logika véget ért (useResource). Pl. ez utóbbi esetben oda nem illő dolgokat ír egy fájlba vagy küld a hálózaton.
Jellemzően kétféle módon használnak erőforrást. Az egyiknél egyszerre egy üzleti logikára használják. Megnyitják, használják az üzleti logikára, majd lezárják.
A másiknál több üzleti logikára akarják használni, időben elnyújtva, többet is egymás mellett.
Az alapja ennek egy pool, a program indításakor létrehozzák, a program leállításakor felszabadítják.
Az erőforrás használat itt is lehet ilyen, mint a pszeudo kódomnál. Tehát az erőforrást elkérik a pool-tól, használják az üzleti logikára, majd visszaadják a poolnak.