抽象工厂实例

来源:互联网 发布:windows兼容性 编辑:程序博客网 时间:2024/05/20 06:37
using System;using System.Collections.Generic;using System.Text;namespace AnimalInterface {//接口 动物颜色interface IAnimalColor {void color();}//鸟class BirdColor : IAnimalColor {#region IAnimalColor 成员public void color() {Console.WriteLine("一只红色的小鸟!");}#endregion}//猴子class MonkeyColor : IAnimalColor {#region IAnimalColor 成员public void color() {Console.WriteLine("一只黑色的猴子!");}#endregion}//蛇class SnakeColor : IAnimalColor {#region IAnimalColor 成员public void color() {Console.WriteLine("一只花的蟒蛇!");}#endregion}}using System;using System.Collections.Generic;using System.Text;namespace AnimalInterface {//接口 动物功能interface IAnimalFunction {void Function();}//鸟class BirdFunction : IAnimalFunction {#region IAnimalFunction 成员public void Function() {Console.WriteLine("小鸟唱歌!");}#endregion}//猴子class MonkeyFunction : IAnimalFunction {#region IAnimalFunction 成员public void Function() {Console.WriteLine("猴子上树!");}#endregion}//蛇class SnakeFunction : IAnimalFunction {#region IAnimalFunction 成员public void Function() {Console.WriteLine("蟒蛇吃人!");}#endregion}}using System;using System.Collections.Generic;using System.Text;namespace AnimalInterface {//抽象工厂abstract class AnimalAbstractFactory {//放回不同的工厂对象public static AnimalAbstractFactory ChooiceFactory(string type) {AnimalAbstractFactory factory = null;switch(type) {case "bird":factory = new BirdFactory();break;case "monkey":factory = new MonkeyFactory();break;case "snake":factory = new SnakeFactory();break;}return factory;}//抽象产品public abstract IAnimalColor CreateAnimalColor();//抽象产品public abstract IAnimalFunction CreateAnimalFunction();}//实体工厂鸟class BirdFactory : AnimalAbstractFactory {//鸟颜色public override IAnimalColor CreateAnimalColor() {return new BirdColor();}//鸟功能public override IAnimalFunction CreateAnimalFunction() {return new BirdFunction();}}//实体工厂猴子class MonkeyFactory : AnimalAbstractFactory {//猴子颜色public override IAnimalColor CreateAnimalColor() {return new MonkeyColor();}//猴子功能public override IAnimalFunction CreateAnimalFunction() {return new MonkeyFunction();}}//实体工厂蛇class SnakeFactory : AnimalAbstractFactory {//蛇颜色public override IAnimalColor CreateAnimalColor() {return new SnakeColor();}//蛇功能public override IAnimalFunction CreateAnimalFunction() {return new SnakeFunction();}}}using System;using System.Collections.Generic;using System.Text;namespace AnimalInterface {class Program {static void Main(string[] args) {string type = Console.ReadLine();AnimalAbstractFactory factory = AnimalAbstractFactory.ChooiceFactory(type);IAnimalColor color = factory.CreateAnimalColor();IAnimalFunction function = factory.CreateAnimalFunction();color.color();function.Function();Console.ReadLine();}}}

 
原创粉丝点击