抽象工厂模式一个例子

问题描述:计算机包含内存(RAM)、CPU等硬件设备,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现计算机设备创建过程并绘制相应的类图。


根据抽象工厂模式的设计准则设计如下类图:


代码链接:

点击打开链接







抽象工厂模式是一种设计模式,它提供了一种创建一系列相关或相互依赖对的接口,而无需指定它们具体的类。这种模式有助于封装对的创建过程,使客户端代码能够更容易地使用这些对。 以下是一个简单的 C# 抽象工厂模式例子: ```csharp // 定义产品接口 public interface IProduct { string Name { get; } } // 具体产品接口 public abstract class ConcreteProduct : IProduct { public string Name => GetType().Name; } // 厂商 A 的产品系列 public class ProductAFactory : IProductFactory { public IProduct Create() { return new ConcreteProductA(); } // 可选的附加操作,比如注册或初始化 public void Initialize() { Console.WriteLine($"Initializing factory A with product {Create().Name}"); } } // 厂商 B 的产品系列 public class ProductBFactory : IProductFactory { public IProduct Create() { return new ConcreteProductB(); } public void Initialize() { Console.WriteLine($"Initializing factory B with product {Create().Name}"); } } // 抽工厂接口 public interface IProductFactory { IProduct Create(); } // 客户端代码示例 public class Client { private readonly IProductFactory _factory; public Client(IProductFactory factory) { _factory = factory; } public void UseProduct() { var product = _factory.Create(); Console.WriteLine($"Using product: {product.Name}"); _factory.Initialize(); // 初始化具体厂商 } } // 主程序 public static void Main(string[] args) { Client client = new Client(new ProductAFactory()); client.UseProduct(); client = new Client(new ProductBFactory()); client.UseProduct(); } ``` 在这个例子中,`IProduct` 和 `ConcreteProduct` 是产品的抽接口和实现,`ProductAFactory` 和 `ProductBFactory` 分别代表两个不同的厂商(抽工厂),各自生产自己的产品系列。客户端通过 `Client` 类来选择并使用相应的产品,而不需要知道产品是如何创建的。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值