博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSharp设计模式读书笔记(1):简单工厂模式(学习难度:★★☆☆☆,使用频率:★★★☆☆)...
阅读量:7088 次
发布时间:2019-06-28

本文共 1797 字,大约阅读时间需要 5 分钟。

Simple Factory模式实际上不是GoF 23个设计模式中的一员。

模式角色与结构:

示例代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace CSharp.DesignPattern.SimpleFactoryPattern{    class Program // 类的修饰符有public和internal, 默认是internal    {        static void Main(string[] args)        {            SimpleFactory factory = new SimpleFactory();            IAthlete footballAthlete = factory.Create("Football");            IAthlete basketballAthlete = factory.Create("Baseketball");            footballAthlete.Run();            footballAthlete.Jump();            basketballAthlete.Run();            basketballAthlete.Jump();            Console.ReadLine();        }    }    interface IAthlete // 接口的修饰符有public和internal, 默认是internal    {        void Run(); // 接口成员默认修饰符为public,但是不能显式添加public        void Jump();    }    class FootballAthlete : IAthlete    {        public void Run()        {            Console.WriteLine("FootballAthlete Run...");        }        public void Jump()        {            Console.WriteLine("FootballAthlete Jump...");        }    }    class BaseketballAthlete : IAthlete    {        public void Run()        {            Console.WriteLine("BaseketballAthlete Run...");        }        public void Jump()        {            Console.WriteLine("BaseketballAthlete Jump...");        }    }    class SimpleFactory    {        public IAthlete Create(String athleteType)        {            if (athleteType == "Baseketball")            {                return new BaseketballAthlete();            }            else if (athleteType == "Football")            {                return new FootballAthlete();            }            else            {                return null;            }        }    }}

 

 

转载于:https://www.cnblogs.com/thlzhf/archive/2012/11/27/2791454.html

你可能感兴趣的文章
不断被取代的传统职业:快速发展的智能交互
查看>>
时尚领秀,潮起温州 | 开宸聚合全新概念于2017温州时尚生活展
查看>>
强大的跨数据库访问组件 UniDAC使用教程:DataSet Manager
查看>>
五分钟跑起来快应用
查看>>
简单的python代码实现语音朗读
查看>>
SaaS加速器 III 技术中心:提供SaaS Launchkit,快速定制,一云多端等能力,一云多端将通过小程序云实现...
查看>>
使用 QuickBI 搭建酷炫可视化分析
查看>>
Python基础
查看>>
sublime text3使用笔记
查看>>
VirtuaNES.v0.97源码探究<5> 内存查看器
查看>>
我的友情链接
查看>>
Mysql基于FEDERATED存储引擎的远程表使用
查看>>
28. C# -- 抽象类和抽象方法
查看>>
archlinux安装go语言开发环境
查看>>
转存:常用正则表达式
查看>>
J2EE Comparator、Comparable的比较学习
查看>>
现在4位字母5数字的域名.com已经没有了 转让5数字域名
查看>>
Instant Radiosity
查看>>
多线程的互斥
查看>>
创建redis集群时出现no such fileto load -- rubygems问题的解决
查看>>