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 }
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 }