DataServer 1st Version
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
unit Myc.Trade.Node;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
System.SysUtils;
|
||||
|
||||
type
|
||||
// Base interface for all objects created by an INode factory.
|
||||
ITradeObject = interface
|
||||
['{B8A29A67-272E-456A-A816-A19A76E43213}']
|
||||
end;
|
||||
|
||||
// Represents a node in the trading graph, acting as a factory for a trade object.
|
||||
INode = interface
|
||||
['{E879B5E4-3A4E-434A-8A4F-A9F71B0B7E1C}']
|
||||
function GetCaption: string;
|
||||
// Factory method to create the runtime object.
|
||||
function CreateObject: ITradeObject;
|
||||
|
||||
property Caption: string read GetCaption;
|
||||
end;
|
||||
|
||||
// Abstract base class for all node implementations.
|
||||
TNodeBase = class abstract(TInterfacedObject, INode)
|
||||
protected
|
||||
fCaption: string;
|
||||
function GetCaption: string;
|
||||
public
|
||||
constructor Create(const Caption: string);
|
||||
function CreateObject: ITradeObject; virtual; abstract;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TNodeBase }
|
||||
|
||||
constructor TNodeBase.Create(const Caption: string);
|
||||
begin
|
||||
fCaption := Caption;
|
||||
end;
|
||||
|
||||
function TNodeBase.GetCaption: string;
|
||||
begin
|
||||
result := fCaption;
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user