设计模式工厂模式
Posted 王思琪^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式工厂模式相关的知识,希望对你有一定的参考价值。
一、定义
一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行
具体实现
namespace 工厂方法
internal class Program
static void Main(string[] args)
//我要一个苹果X手机
IApplePhoneFactory applexPhone = new IphoneXFactory();
IAppleProduct X = applexPhone.getAppleProduct();
//我要一个苹果手机
IphoneXProduct iphoneX = new IphoneXProduct();
//构建苹果手机工厂接口
interface IApplePhoneFactory
//获取具体产品
IAppleProduct getAppleProduct();
//抽象的产品接口
public interface IAppleProduct
void ProductIphone();
//苹果X产品的具体实现工厂
public class IphoneXFactory : IApplePhoneFactory
//实现
public IAppleProduct getAppleProduct()
return new IphoneXProduct();
//苹果X产品生产类
public class IphoneXProduct : IAppleProduct
public void ProductIphone()
Console.WriteLine("我是苹果X");
二、应用
1、主要解决
接口选择的问题
2、什么时候使用?
当我们明确地计划不同条件下创建不同实例的时候
3、如何解决
让其子类实现工厂接口,返回的也是一个抽象的产品
4、优点
- 一个调用者想创建一个对象,只要知道其名称就可以了
- 扩展性高,如果增加一个产品,只要扩展一个工厂类就可以
- 屏蔽产品的具体实现,调用者只关心产品的接口
5、缺点
每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖
以上是关于设计模式工厂模式的主要内容,如果未能解决你的问题,请参考以下文章