美文网首页Unity教程合集unity3D技术分享征服Unity3d
【设计模式】改进抽象工厂模式实例

【设计模式】改进抽象工厂模式实例

作者: 黒可乐 | 来源:发表于2016-11-30 16:56 被阅读0次

这两天在修改网络消息规则,看到消息的实例化不就是简单工厂模式来改进抽象工厂模式来做的么。顺便就再来看看抽象工厂模式,这里面用到了反射,因为反射的原因我就简单的在unity工程下实现以下这个实例。至于反射的什么原因,可以看一下我的这篇文章的最下面。

是什么

提供一个接口与工厂相互依赖,而不是提供具体的类。概念就是这一句了。

来个图解

可以看到这里相互依赖的接口就是IMessage,我们通过这个再来返回实例,Factory里面的msgDic是用来存储消息名称与消息ID的。我们在这里就先把这个存储好。

具体实现

IMessage:

public interface IMessage
{
   void Print();
}

Message1:

public class Message1:IMessage
{
    public int id;
    public string name;
    
    public void Print() 
    { 
        Debug.Log("this Message1"); 
    }
}

Message2:

public class Message1:IMessage
{
    public int id;
    public string name;
    
    public void Print() 
    { 
        Debug.Log("this Message1"); 
    }
}

Factory:

public class Factory
{
    private readonly Dictionary<int,string> msgDic;
          
    public Factory() 
    { 
        msgDic=new Dictionary<int,string>();
        msgDic.Add(1,"Message1");
        msgDic.Add(2,"Message2");
    }

    public IMessage CreateMessage(int id)
    {
        if(!msgDic.ContainsKey(id))
        {
            return null;
        }
        return (IMessage)Assembly.GetCallingAssembly().CreateInstance(msgDic[id]);
    }
}

Client:

void Start()
{
    var factory=new Factory();
    factory.CreateMessage(1).Print();
    factory.CreateMessage(2).Print();
}

结果:

后面再对消息赋值就可以了。
当然这个模式不仅仅是用于这方面,工厂还可以生产其他的嘛,毕竟是世界大工厂嘛。

相关文章

  • 【设计模式】改进抽象工厂模式实例

    这两天在修改网络消息规则,看到消息的实例化不就是简单工厂模式来改进抽象工厂模式来做的么。顺便就再来看看抽象工厂模式...

  • 设计模式 - 抽象工厂模式 (3/23)

    抽象工厂模式 从设计层面上看,抽象工厂模式就是对简单工厂模式的改进或者进一步的抽象。将工厂抽象成两层,Abstra...

  • 抽象工厂模式

    一、抽象工厂模式介绍 二、抽象工厂模式代码实例

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 工厂模式

    设计模式——工厂模式从ES6重新认识JavaScript设计模式 工厂模式主要是为了创建对象实例或者类簇(抽象工厂...

  • 设计模式-工厂模式

    工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

  • 常用设计模式

    设计模式 工厂模式 工厂模式思路上分:简单工厂模式,工厂模式, 抽象工厂模式// 抽象工厂模式可以代替工厂模式,做...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

  • Android 源码设计模式解析与实战 读书笔记 6 抽象工厂模

    创建型设计模式 —— 抽象工厂模式 1. 抽象工厂模式介绍 抽象工厂模式(Abstract Factory Pat...

  • 设计模式系列-抽象工厂模式

    JAVA设计模式系列: 单例模式 观察者模式 模板方法模式 简单工厂模式 抽象工厂模式 抽象工厂模式 定义 抽象工...

网友评论

    本文标题:【设计模式】改进抽象工厂模式实例

    本文链接:https://www.haomeiwen.com/subject/cfbzpttx.html