Net设计模式实例之简单工厂模式(Simple Factory Pattern)
程序员文章站
2023-10-24 13:28:58
一、简单工厂模式简介(bref introduction)
简单工厂模式(simple factory pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类...
一、简单工厂模式简介(bref introduction)
简单工厂模式(simple factory pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖
二、解决的问题(what to solve)
客户实例化对象时不需要关心该对象是由哪个子类实例化的。
三、简单工厂模式分析(analysis)
1、简单工厂模式结构
iproduct接口:抽象产品类
concreteproduct类:产品类的具体实现
simple factory简单工厂类
四.实例分析(example)
1、场景
一个简单计算器,具有简单的加操作和减操作。结构如下图所示
simplefactory:简单工厂类。
operation:抽象操作类
addoperation:加法操作
suboperation:减法操作
2、代码
1、抽象操作类operation,及其具体实现类addoperation、suboperation
/// <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、实例运行结果
推荐阅读
-
PHP设计模式之工厂模式(Factory Pattern)的讲解
-
PHP设计模式之工厂模式(Factory Pattern)的讲解
-
Python设计模式之简单工厂模式实例详解
-
Net设计模式实例之简单工厂模式(Simple Factory Pattern)
-
PHP设计模式之简单工厂和工厂模式实例分析
-
大白话简单工厂模式 (Simple Factory Pattern)
-
设计模式之工厂模式(factory pattern)
-
Net设计模式实例之观察者模式(Observer Pattern)
-
简单工厂模式(Simple Factory Pattern)
-
JavaScript设计模式之工厂模式简单实例教程