C#简单抽象工厂

网友投稿 218 2022-12-01

C#简单抽象工厂

using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { AbstractFactory abstractFactory = AbstractFactory.Factory("samsang"); IMP4 iMP4 = abstractFactory.CreateMP4(); iMP4.Look(); } } //抽象工厂 public abstract class AbstractFactory { public static AbstractFactory Factory(string type) { AbstractFactory factory=null; switch(type) { case "sony": factory=new SonyFactory(); break; case "samsang": factory=new SamsanyFactory(); break; } return factory; } //通过抽象产品,创建实际产品 public abstract IMP3 CreateMP3(); public abstract IMP4 CreateMP4(); } //索尼的实际工厂 public class SonyFactory:AbstractFactory { public override IMP3 CreateMP3() { return new SonyMP3(); } public override IMP4 CreateMP4() { return new SonyMP4(); } } //三星的实际工厂 public class SamsanyFactory:AbstractFactory { public override IMP3 CreateMP3() { return new SamsangMP3(); } public override IMP4 CreateMP4() { return new SamsangMP4(); } } //MP3的抽象产品 public interface IMP3 { void Listen(); } //MP4的抽象产品 public interface IMP4 { void Listen(); void Look(); } //MP3的实际产品(索尼的) public class SonyMP3 : IMP3 { public void Listen() { Console.WriteLine("索尼 MP3 可以听"); } } //MP3的实际产品(三星的) public class SamsangMP3 : IMP3 { public void Listen() { Console.WriteLine("三星 MP3 可以听"); } } //MP4的实际产品(索尼的) public class SonyMP4 : IMP4 { public void Listen() { Console.WriteLine("索尼 MP4 可以听"); } public void Look() { Console.WriteLine("索尼 MP4 可以看"); } } //MP4的实际产品(三星的) public class SamsangMP4 : IMP4 { public void Listen() { Console.WriteLine("三星 MP4 可以听"); } public void Look() { Console.WriteLine("三星 MP4 可以看"); } }}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基本概念:@Bean和@Configuration
下一篇:Spring BeanPostProcessor(后置处理器)的用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~