Delphi 简单工厂模式实现

简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在 Delphi 中实现简单工厂模式,可以将对象的创建逻辑封装在一个独立的工厂类中,客户端代码通过调用工厂类的方法来获取所需的对象实例,而无需关心对象的具体创建过程。

以下是一个简单的示例,演示了如何在 Delphi 中实现简单工厂模式:

// 定义产品接口
type
  ICar = interface
    function GetName: string;
  end;

// 具体产品类:轿车
type
  TCar = class(TInterfacedObject, ICar)
  public
    function GetName: string;
  end;

// 具体产品类:SUV
type
  TSUV = class(TInterfacedObject, ICar)
  public
    function GetName: string;
  end;

// 工厂类
type
  TCarFactory = class
  public
    class function CreateCar(const carType: string): ICar;
  end;

// 具体产品类实现
function TCar.GetName: string;
begin
  Result := '轿车';
end;

function TSUV.GetName: string;
begin
  Result := 'SUV';
end;

// 工厂类实现
class function TCarFactory.CreateCar(const carType: string): ICar;
begin
  if carType = '轿车' then
    Result := TCar.Create
  else if carType = 'SUV' then
    Result := TSUV.Create
  else
    raise Exception.Create('不支持的车型');
end;

// 客户端代码
procedure TestSimpleFactory;
var
  car: ICar;
begin
  car := TCarFactory.CreateCar('轿车');
  WriteLn(car.GetName); 
  car := TCarFactory.CreateCar('SUV');
  WriteLn(car.GetName);
end;

在上面的示例中:

  • ICar 接口定义了产品的抽象接口。
  • TCarTSUV 是具体的实现类,分别代表轿车和 SUV。
  • TCarFactory 是工厂类,它提供了一个 CreateCar 方法,根据传入的车型参数创建相应的汽车对象。
  • 客户端代码通过调用 TCarFactory.CreateCar 方法来获取汽车对象,而无需关心具体的创建逻辑。

通过使用简单工厂模式,我们可以将对象的创建逻辑与客户端代码解耦,提高代码的可维护性和可扩展性。

rar 文件大小:21.72KB