c# h5 unity3d_C# Unity的使用

Unity是微软推出的IOC框架,

使用这个框架,可以实现AOP面向切面编程,便于代码的后期维护,此外,这套框架还自带单例模式,可以提高程序的运行效率。

下面是我自己的案例,以供日后参考:

使用VS2015的Nuget管理器下载Unity。

程序员接口类:

1 namespace UnityDemo

2 {

3 public interface IProgrammer

4 {

5 void Working();

6 }

7 }

程序员类:

1 using System;

2

3 namespace UnityDemo

4 {

5 public class CSharp : IProgrammer

6 {

7 public void Working()

8 {

9 Console.WriteLine("programming C# ...");

10 }

11 }

12

13 public class VB : IProgrammer

14 {

15 public void Working()

16 {

17 Console.WriteLine("programming VB ...");

18 }

19 }

20

21 public class Java : IProgrammer

22 {

23 public void Working()

24 {

25 Console.WriteLine("programming Java ...");

26 }

27 }

28 }

App.config配置文件:

主程序代码:

1 using Microsoft.Practices.Unity;

2 using Microsoft.Practices.Unity.Configuration;

3 using System;

4 using System.Configuration;

5

6 namespace UnityDemo

7 {

8 class Program

9 {

10 private static IUnityContainer container = null;

11

12 static void Main(string[] args)

13 {

14 RegisterContainer();

15

16 var programmer = container.Resolve("CSharp");

17 //var programmer = container.Resolve("VB");

18 programmer.Working();

19

20 Console.ReadKey();

21 }

22

23 private static void RegisterContainer()

24 {

25 container = new UnityContainer();

26 UnityConfigurationSection config =(UnityConfigurationSection) ConfigurationManager.GetSection(UnityConfigurationSection.SectionName);

27 config.Configure(container, "Programmer");

28 }

29 }

30 }

运行结果:

这个Demo的思想:

定义一个程序员接口IProgrammer,有3个实现这个接口的程序员类,分别是CSharp、VB、Java,

然后配置App.config文件,里面首先定义一个配置节点(configSection),名称为Unity,引用的命名空间是微软的Unity,

接着下面定义一个unity节点,里面的容器集合(containers),集合里面可以有多个容器,这个Demo里的只有一个容器,里面包含了3个注册节点(register),分别是CSharp,VB、Java,注意,里节点中的name属性用于在程序调用时选择类的。

在主程序的代码中,

1、有一个Unity的容器container;

2、注册容器的方法RegisterContainer,作用是到App.config中读取容器的信息,把接口和3个类的映射关系注册到容器中;

3、主程序运行前,先注册容器,然后通过容器的Resolve方法,实例化一个programmer类,原理大概是,我们把类名传入到容器中,容器会根据类名,找到App.config中对应的register映射关系,容器就会通过反射得到相应的程序员类,返回这个类。

4、此时programmer类就实例化完成,可以使用了。

使用了Unity,以后如果需要追加新的类,只需要实现IProgrammer接口,在配置文件追加映射关系,执行代码中修改name的值就能使用新的类了。

这样,我们不需要删除旧的代码,就能追加新的功能,便于维护代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值