惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

U
Unit 42
L
LangChain Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
有赞技术团队
有赞技术团队
B
Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
The Cloudflare Blog
Martin Fowler
Martin Fowler
H
Hackread – Cybersecurity News, Data Breaches, AI and More
M
MIT News - Artificial intelligence
Recent Announcements
Recent Announcements
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
博客园 - Franky
小众软件
小众软件

博客园 - DODONG

在现有PDF文件上添加水印 c#获取硬件信息 一个读写csv文件的C#类 . C#操作Excel文件(读取Excel,写入Excel) . 解决全球化时区问题 利用ReportViewer读取Reporting Service数据 [转]用反射来处理多字段提交 查询数据表中重复的记录 CVS文件导入SQL ComponentArt.Web.UI中AJAX TreeView 抽象工厂(Abstract Factory)模式 简单工厂(Simple Factory)模式 用.NET创建Windows服务 关于SharePoint中查询写法和注意的地方 关于&运算符和^ 初识WAP开发时.. C#操作XML XMLHttp客户端操作数据 asp.net网页智能导航SmartNavigation的替代实现方式
工厂方法(Factory Method)模式
DODONG · 2006-10-24 · via 博客园 - DODONG

 1 using System;
 2 
 3 public abstract   class Light
 4 {
 5    public abstract void TurnOn();
 6    public abstract void TurnOff();
 7 }
 8 
 9 public class BulbLight : Light
10 {
11    public override void TurnOn()
12    { Console.WriteLine("Bulb Light is Turned on"); }
13 
14    public override void TurnOff()
15    { Console.WriteLine("Bulb Light is Turned off"); }
16 }
17 
18 public class TubeLight : Light
19 {
20    public override void TurnOn()
21    { Console.WriteLine("Tube Light is Turned on"); }
22 
23    public override void TurnOff()
24    { Console.WriteLine("Tube Light is Turned off"); }
25 }
26 
27 public abstract   class Creator
28 {
29    public abstract Light factory();
30 }
31 
32 public class BulbCreator : Creator
33 {
34    public override Light factory()
35    { return new BulbLight(); }
36 }
37 
38 public class TubeCreator : Creator
39 {
40    public override Light factory()
41    { return new TubeLight(); }
42 }
43 
44 public class Client
45 {
46    public static void Main()
47    {
48       Creator c1 = new BulbCreator();
49       Creator c2 = new TubeCreator();
50 
51       Light l1 = c1.factory();
52       Light l2 = c2.factory();
53 
54       l1.TurnOn();
55       l1.TurnOff();
56 
57       Console.WriteLine("-----------------");
58 
59       l2.TurnOn();
60       l2.TurnOff();
61    }
62 }