概述
Make大话设计模式早在几年前,就已经购买学习了,但至今未系统的整理过学习的心得。
作者原文以计算器为例,讲述了工厂模式。
简单工厂模式是类的创建,又叫静态工厂方法(Static Factory Methord)模式。简单工厂模式是由一个工厂对象决定创造哪一种产品类的实例。
自我理解应用场景,比如海尔集团,能够生产冰箱,洗衣机、空调等等,如果增加新的产品线则增加新的类,考虑到扩展性可以加入反射机制来动态创建产品;下面是简单实例,
/// <summary>
/// 工厂
/// </summary>
public class Factory
{
/// <summary>
/// 生产产品
/// </summary>
/// <param name="product"></param>
/// <returns></returns>
public static IFactory Make(string productName)
{
IFactory product = null;
switch (productName)
{
case "手机":
FactoryPhone phone = new FactoryPhone();
break;
case "冰箱":
FactoryFridge fridge = new FactoryFridge();
break;
}
return product;
} }
/// <summary>
/// 工厂接口
/// </summary>
public interface IFactory
{
/// <summary>
/// 制造
/// </summary>
/// <returns></returns>
string Make();
}
/// <summary>
/// 手机工厂
/// </summary>
public class FactoryPhone : IFactory
{
/// <summary>
/// 制造
/// </summary>
/// <returns></returns>
public string Make()
{
return "手机";
}
}
/// <summary>
/// 冰箱工厂
/// </summary>
public class FactoryFridge : IFactory
{
/// <summary>
/// 制造
/// </summary>
/// <returns></returns>
public string Make()
{
return "冰箱";
}
}
最终调用代码:
IFactory factory;
factory = Make("手机");
string product = factory.Make();
总结,简单点说个人理解静态工厂模式,其实就是适用于业务比较固定的项,理论上延续刚才的海尔工厂来说,我现在要生产笔记本,那么我实际上就需要新建一个笔记本工厂,而我们的程序则需要增加笔记本工厂类;那么在Factory的Make中就需要重复生产手机和生产冰箱的类似代码;这里我们可以更改为反射实例化对应类和调用对应方法;从而能解决新增业务,只需要新增相应的DLL即可;设计模式只是一种方法,最好大家能结合实际写出更优美的代码;
我只是一个不断学习的小白而已,大家最好学习的时候多看不同的人写的设计模式,已增加理解很可能一个人写的,自己理解有偏差;
简单工厂模式是类的创建,又叫静态工厂方法(Static Factory Methord)模式。简单工厂模式是由一个工厂对象决定创造哪一种产品类的实例。白话点说,一个类里面有一个静态的方法给个参数返回一个实例,该方法内部根据参数实例化对应实例;
大话设计模式作者原文:http://www.cnblogs.com/cj723/archive/2006/09/23/512430.html
最后
以上就是想人陪身影为你收集整理的学习心得---简单工厂模式/静态工厂方法的全部内容,希望文章能够帮你解决学习心得---简单工厂模式/静态工厂方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复