C# 工厂设计模式
来源:互联网 发布:资本在线网络借贷 编辑:程序博客网 时间:2024/06/01 10:16
C# 工厂设计模式
工厂设计模式允许系统不修改工厂类逻辑的情况下来添加新产品,这样就减少了很多不必要的麻烦,如果工厂要升级,可以生产另外一种产品,只需要添加一个新的工厂,用于返回新的产品即可
产品类的实现
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MyProduct{ public enum ProductType { product1, product2, } public abstract class Product { public ProductType productType; public abstract void printProductName(); } public class Product1 : Product { public override void printProductName() { Console.WriteLine("this is Product1 "); } public Product1() { Console.WriteLine("create a Product1 "); this.productType = ProductType.product1; } } public class Product2 : Product { public override void printProductName() { Console.WriteLine("this is Product2 "); } public Product2() { Console.WriteLine("create a Product2 "); this.productType = ProductType.product1; } }}
工厂类的实现
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using MyProduct;namespace MyFactory{ //简单工厂实现 修改起来需要频繁添加 case语句 , 不易维护 //class Factory //{ // public static Product CreateProduct(ProductType type) // { // Product product = null; // switch (type) // { // case ProductType.product1: // { // product = new Product1(); // } // break; // case ProductType.product2: // { // product = new Product2(); // } // break; // default: // break; // } // return product; // } //} public abstract class Factory { public abstract Product CreateProduct(); } public class Factory1 : Factory { public override Product CreateProduct() { return new Product1(); } } public class Factory2 : Factory { public override Product CreateProduct() { return new Product2(); } }}
实际应用
Factory factory1 = new Factory1(); Product product1 = factory1.CreateProduct(); product1.printProductName(); Factory factory2 = new Factory2(); Product product2 = factory2.CreateProduct(); product2.printProductName();
控制台输出
如果要添加产品,只需要分别在Factory和Product类中添加相应的新工厂和新产品即可,重新创建一个新的文件也是可以的,这样就保证了不用修改之前的代码,实现了新产品的添加
0 0
- C#工厂设计模式
- C#工厂设计模式
- C# 工厂设计模式
- c#设计模式-工厂模式
- C#工厂设计模式 示范
- c#设计模式-简单工厂
- c#设计模式-工厂方法
- C#设计模式之工厂
- C# 简单工厂设计模式
- C#简单工厂设计模式
- C#设计模式--简单工厂
- C#设计模式--工厂方法
- C# 设计模式 之 抽象工厂模式
- C#设计模式之简单工厂模式
- C#设计模式之抽象工厂模式
- c#设计模式之[工厂模式]
- c#设计模式之简单工厂模式
- c#设计模式--抽象工厂模式
- POJ2572(Seek the Name, Seek the Fame)
- Android JsonArray移除里面的一个对象
- ORA-01439:要更改数据类型,则要修改的列必须为空
- JQuery ajax请求要求【严格的】JSON格式
- Android 高仿QQ5.2双向侧滑菜单DrawerLayout实现源码
- C# 工厂设计模式
- PMP:项目管理专业人士资格认证
- TOMCAT 配置和理解
- 基数排序C++实现
- 从C++到COM,学习笔记(5)
- 回文链表
- CEF3与MFC(C++)的相互调用
- 一个 Linux 上分析死锁的简单方法
- javascript中用eval处理字符串中的变量