Factory Method模式

本文通过一个简单的旅游信息处理示例介绍了工厂方法设计模式的基本原理。该模式允许在不指定具体类的情况下创建对象,适用于创建一系列相关或相互依赖的对象。

Factory Method(工厂方法)模式属于GoF设计模式中的创建型分组,它用于在不之制定待创建对象的具体类的情况下创建对象。--《asp.net设计模式》

说白了就是一个人想要出国旅游,市面上有很多出国旅游信息并且很杂乱,于是他就是找旅行社,旅行社问他要了旅游标准并顺利的出国旅游了。Factory Method模式就相当于旅行社。

以下是我的代码

主界面

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Console.WriteLine("please enter country code...");
 6             string code = Console.ReadLine();
 7             Console.WriteLine("please enter country name...");
 8             string name = Console.ReadLine();
 9             ILoca loca;
10             if (code=="1"&&name=="asia")
11             {
12                 loca=new Asia();
13                 Console.WriteLine(loca.Description(new Country{Code = code,Name =name }));
14             }
15             else if (code=="2"&&name=="euroqe")
16             {
17                 loca=new Europe();
18                 Console.WriteLine(loca.Description(new Country { Code = code, Name = name }));
19             }
20 
21             Console.ReadLine();
22         }
23     }

定义一个借口,用于扩展

1 public interface ILoca
2     {
3         string Description(Country country);
4     }

实现接口

1     public class Asia : ILoca
2     {
3         public string Description(Country country)
4         {
5             return "Asia";
6         }
7     }
1     public class Europe : ILoca
2     {
3         public string Description(Country country)
4         {
5             return "Euroqe";
6         }
7     }

用于持久化数据的实体类

1     public class Country
2     {
3         public string Code { get; set; }
4         public string Name { get; set; }
5         public Location Area { get; set; }
6     }
1     public class Location
2     {
3         public string LocationName { get; set; }
4     }

个人理解比较浅显,还请不吝赐教!

 

转载于:https://www.cnblogs.com/tony312ws/p/3532576.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值