用c#多态思想实现仓储系统
时间: 2024-04-23 13:28:05 浏览: 108
在C#中使用多态思想实现仓储系统可以通过抽象类和接口来实现。以下是一个简单的示例:
首先,定义一个抽象类 `Product`,表示产品:
```csharp
public abstract class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
public abstract void DisplayInfo();
}
```
然后,定义两个具体的产品类,继承自 `Product`:
```csharp
public class Book : Product
{
public string Author { get; set; }
public override void DisplayInfo()
{
Console.WriteLine($"Book: {Name}, Author: {Author}, Price: {Price}");
}
}
public class Electronic : Product
{
public string Manufacturer { get; set; }
public override void DisplayInfo()
{
Console.WriteLine($"Electronic: {Name}, Manufacturer: {Manufacturer}, Price: {Price}");
}
}
```
接下来,定义一个仓储类 `Warehouse`,负责管理产品的存储和展示:
```csharp
public class Warehouse
{
private List<Product> products;
public Warehouse()
{
products = new List<Product>();
}
public void AddProduct(Product product)
{
products.Add(product);
}
public void DisplayProducts()
{
foreach (var product in products)
{
product.DisplayInfo();
}
}
}
```
最后,在主函数中使用多态实现仓储系统:
```csharp
static void Main(string[] args)
{
Warehouse warehouse = new Warehouse();
Book book = new Book()
{
Name = "Harry Potter",
Author = "J.K. Rowling",
Price = 19.99m
};
Electronic electronic = new Electronic()
{
Name = "iPhone",
Manufacturer = "Apple",
Price = 999.99m
};
warehouse.AddProduct(book);
warehouse.AddProduct(electronic);
warehouse.DisplayProducts();
}
```
在这个例子中,`Product` 类作为抽象类,定义了共同的属性和方法,`Book` 和 `Electronic` 类通过继承 `Product` 类来实现具体的产品。`Warehouse` 类通过接收 `Product` 对象来存储和展示产品,通过调用 `DisplayInfo()` 方法实现多态,根据具体对象的类型来展示不同的信息。
这样,通过多态的思想,可以方便地扩展和管理不同类型的产品。
阅读全文