Net设计模式之简单工厂模式(Simple Factory Pattern)

简介:

一、简单工厂模式简介(Bref Introduction

        简单工厂模式( Simple Factory Pattern )的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖

二、解决的问题(What To Solve

        客户实例化对象时不需要关心该对象是由哪个子类实例化的。

三、简单工厂模式分析(Analysis

1、简单工厂模式结构

I Product 接口: 抽象产品类
ConcreteProduct :产品类的具体实现
Simple Factory 简单工厂类

四.实例分析(Example

1、场景

一个简单计算器,具有简单的加操作和减操作。结构 如下图所示
SimpleFactory : 简单工厂类。
Operation : 抽象操作类
AddOperation : 加法操作
SubOperation : 减法操作

2、代码

1 、抽象操作类 Operation 及其具体实现类AddOperationSubOperation
///   <summary>
///   抽象操作类
///   </summary>
public  abstract class Operation
{
    public int numberA;
    public int numberB;
    public abstract int GetResult();
}
///   <summary>
///   加法操作
///   </summary>
public  class AddOperation : Operation
{
    public override int GetResult()
    {
       return (this.numberA + this.numberB);
    }
}
///   <summary>
///   减法操作
///   </summary>
public  class SubOperation : Operation
{
    public override int GetResult()
    {
        return (this.numberA - this.numberB);
    }
}
 
2 、简单工厂类 SimpleFactory
///   <summary>
///   简单工厂类
///   </summary>
public  class SimpleFactory
{
    public static Operation CreateOperation(string operation)
    {
        Operation o = null;
 
        switch (operation)
        {
            case "+":
                o = new AddOperation();
                break;
            case "-":
                o = new SubOperation();
                break;
        }
        return o;
    }
}
 
3 、客户端代码
static  void  Main (string[] args)
{
    Operation operation1 = SimpleFactory.CreateOperation("+");
    operation1.numberA = 10;
    operation1.numberB = 20;
    Console.WriteLine("{0}+{1}={2}", operation1.numberA, operation1.numberB, operation1.GetResult());
 
    Operation operation2 = SimpleFactory.CreateOperation("-");
    operation2.numberA = 10;
    operation2.numberB = 20;
    Console.WriteLine("{0}-{1}={2}", operation2.numberA, operation2.numberB, operation2.GetResult());
 
    Console.Read();
}
 

3、实例运行结果

 

五、总结(Summary

简单工厂模式是比较简单的一种设计模式,本文对此模式的概念及其设计结构图简单地进行了描述,最后以一个计算器的实例进行了说明。









本文转自 灵动生活 51CTO博客,原文链接:http://blog.51cto.com/smartlife/258932,如需转载请自行联系原作者

目录
相关文章
|
数据库 开发者
.NET 异步编程之谜:async/await 模式究竟隐藏着怎样的神奇力量?
【8月更文挑战第28天】在当今注重效率和响应性的软件开发领域,.NET 的 async/await 模式如同得力助手,简化异步代码编写,使代码更易理解和维护。通过后台执行耗时操作,如网络请求和数据库查询,避免阻塞主线程,显著提升系统响应性。此模式不仅适用于网络请求,还广泛应用于数据库操作和文件读写。合理使用 async/await 可大幅优化性能,但需注意避免过度使用、正确处理调用链及异常,以确保系统稳定性和高效性。深入探索 async/await,助您构建更出色的应用程序。
174 0
|
12月前
|
设计模式 Java 数据安全/隐私保护
Java 设计模式:装饰者模式(Decorator Pattern)
装饰者模式属于结构型设计模式,允许通过动态包装对象的方式为对象添加新功能,提供比继承更灵活的扩展方式。该模式通过组合替代继承,遵循开闭原则(对扩展开放,对修改关闭)。
|
存储 NoSQL MongoDB
.NET MongoDB数据仓储和工作单元模式封装
.NET MongoDB数据仓储和工作单元模式封装
245 15
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
设计模式 Java
设计模式--适配器模式 Adapter Pattern
这篇文章介绍了适配器模式,包括其基本介绍、工作原理以及类适配器模式、对象适配器模式和接口适配器模式三种实现方式。
|
网络协议 大数据 网络架构
桥接模式和NET模式的区别
桥接模式和NET模式的区别
886 0
|
开发框架 监控 .NET
|
10月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
296 16
|
10月前
|
设计模式 负载均衡 监控
并发设计模式实战系列(2):领导者/追随者模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第二章领导者/追随者(Leader/Followers)模式,废话不多说直接开始~
288 0
|
10月前
|
设计模式 监控 Java
并发设计模式实战系列(1):半同步/半异步模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第一章半同步/半异步(Half-Sync/Half-Async)模式,废话不多说直接开始~
354 0