SingleObjectAggregateUnit.pas 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. unit SingleObjectAggregateUnit;
  2. interface
  3. uses
  4. BidLotDM;
  5. type
  6. TSingleObjectAggregate = class
  7. private
  8. FBidLotDM: TBidLotDataModule;
  9. function GetBidLotDM: TBidLotDataModule;
  10. public
  11. destructor Destroy; override;
  12. property BidLotDM: TBidLotDataModule read GetBidLotDM;
  13. end;
  14. { Single Object Manager }
  15. function SingleObjectAggregate: TSingleObjectAggregate;
  16. implementation
  17. var
  18. gl_ingleObjectAggregate: TSingleObjectAggregate;
  19. function SingleObjectAggregate: TSingleObjectAggregate;
  20. begin
  21. if not Assigned(gl_ingleObjectAggregate) then
  22. gl_ingleObjectAggregate := TSingleObjectAggregate.Create;
  23. Result := gl_ingleObjectAggregate;
  24. end;
  25. { TSingleObjectAggregate }
  26. destructor TSingleObjectAggregate.Destroy;
  27. begin
  28. FBidLotDM.Free;
  29. inherited;
  30. end;
  31. function TSingleObjectAggregate.GetBidLotDM: TBidLotDataModule;
  32. begin
  33. if FBidLotDM = nil then
  34. FBidLotDM := TBidLotDataModule.Create(nil);
  35. Result := FBidLotDM;
  36. end;
  37. initialization
  38. finalization
  39. gl_ingleObjectAggregate.Free;
  40. end.