Prism学习(2)---初识Unity

上一章中,我以面向对象的思想,重构了一个简单的计算器解决方案,将其放入到了五个不同的程序集中,分别为:CalculatorLibrary、CommandParserLibrary、InputOutputLibrary、InterfaceLibrary和CommonTypesLibrary。InterfaceLibrary中记录了整个解决方案所有对外公开的接口。今天将对其进行进一步的重构,其目的是为了解藕程序集之间的依懒关系。Prism中提供了两种框架用于实现这种解藕,分别是Unity和MEF。下面将使用Unity来实现初步的解藕,这将为使用Prism进行彻底的解藕创造条件。

 

我下载的是Prism 4.1,这个版本可以支持.NET Framework 4.0平台和 Silverlight 5.0, 是当前的最新版本。安装路径: C:\Prism。操作过程如下:

一,在Application项目中添加Prism引用, 引用的dll文件的路径为:C:\Prism\Lib\Desktop\Unity\Microsoft.Practices.Unity.dll

二,更改Application项目中Main函数的实现内容,如下:

复制代码
 1      static  void Main( string[] args)
 2     {
 3       UnityContainer Container =  new UnityContainer();
 4 
 5       Container.RegisterType<ICalculator, Calculator>();
 6       Container.RegisterType<IInputService, ConsoleInputService>();
 7       Container.RegisterType<IOutputService, ConsoleOutputService>();
 8       Container.RegisterType<IInputParserService, InputParserService>();
 9       Container.RegisterType<ICalcutorReplLoop, CalcutorReplLoop>();
10 
11       ICalcutorReplLoop loop = Container.Resolve<ICalcutorReplLoop>();
12       loop.Run();
13     }
复制代码

Unity首先注册所有需要用到的程序集到 UnityContainer的实例中。代码中的:Container.RegisterType方法是其中的一种,我们可以发现,Register方法有多种不同的实现,可用于不同环境下的注册。当需要使用时,可以使用Resolve方法加载程序集中的某个接口。并通过这个接口,使用程序集中的业务逻辑,这样就不需要知道其内部的具体实现了。如果仅仅只能以代码的方式来进行注册,那么这样的程序显然还缺少足够的灵够性。万幸的是Unity支持从配置文件中加载注册信息并自动完成注册。这种方法将能减少我们的代码量,更重要的是能让我们可以用更加灵活的方式来开发可插拔的应用程序模块。以上面需要注册的五个类为例来看看是如何实现的:

 首先,在Application项目中添加应用程序配置文件(App.config)。将上段代码中注册过的五个类写入到配置文件中,如下所示:

复制代码
 2  <? xml version="1.0" encoding="utf-8"  ?>
 3  < configuration >
 4    < configSections >
 5      < section  name ="unity"  
 6               type  ="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
 7    </ configSections >
 8    < unity >
 9      < containers >
10        < container >
11          < types >
12            < type  type ="CalculatorLibrary.ICalculator, InterfaceLibrary"
13                  mapTo ="Application.Calculator, CalculatorLibrary" />
14            < type  type ="CalculatorLibrary.ICalcutorReplLoop, InterfaceLibrary"
15                  mapTo ="Application.CalcutorReplLoop, CalculatorLibrary" />
16            < type  type ="CommandParserLibrary.IInputParserService, InterfaceLibrary"
17                  mapTo ="Application.InputParserService, CommandParserLibrary" />
18            < type  type ="InputOutputLibrary.IInputService, InterfaceLibrary"
19                  mapTo ="Application.ConsoleInputService, InputOutputLibrary" />
20            < type  type ="InputOutputLibrary.IOutputService, InterfaceLibrary"
21                  mapTo ="Application.ConsoleOutputService, InputOutputLibrary" />
22          </ types >
23        </ container >
24      </ containers >
25    </ unity >
26  </ configuration >
复制代码

 使用配置文件注册程序集,能为程序员减少一部分代码。当然,也需要自己增加一系列的配置。在对配置文件的格式不够清楚的情况下,编辑配置文件比写代码可能会更加繁琐。如果有时间的话,有必要去写一个配置文件的生成工具,以减少出错的几率和提高开发效率。呵呵,这都是后话了,先接着看看代码部份吧。

为了从配置文件中读取这些信息,需要添加引用:  System.Configuration的引用。接着将Microsoft.Practices.Unity.Configuration.dll 文件引用到Application项目中。代码如下:

 

复制代码
 2      static  void Main( string[] args)
 3     {
 4       UnityContainer Container =  new UnityContainer();
 5       UnityConfigurationSection configSection = (UnityConfigurationSection)ConfigurationManager.GetSection( " unity ");
 6       configSection.Configure(Container);
 7 
 8       ICalcutorReplLoop loop = Container.Resolve<ICalcutorReplLoop>();
 9       loop.Run();
10     }
复制代码

 


 

时间过的真快,都转钟了。今天先到这里吧!虽然还没有完全实现程序集之间的解藕,但代码得更加简单、清晰。明天,我将继续对现有的代码进行重构,以实现完全的解藕。

### 回答1: GraphPad Prism 9.5 是一款专业的统计与绘图软件,可从各种实验数据中生成高质量的图表和分析结果。这款软件适用于多种研究领域,如生物学、医学、化学、物理学、社会科学等。 GraphPad Prism 9.5 有着简洁明了的操作界面,易于上手。它具有多种分析工具和图表类型,包括柱状图、散点图、趋势图、等分图、箱线图等。用户可以根据实验类型选择不同的分析方法,比如t检验、方差分析、回归分析等,从而很方便地评估数据的可靠性和相关性,并检验差异的显著性。 此外,GraphPad Prism 9.5 还提供了充分的数据可视化功能。用户可以随时调整图表风格和样式,以使其更加清晰、直观、吸引人,并分享给同事、客户或出版社,以便更好地展示实验结果和相关结论。 总的来说,GraphPad Prism 9.5 是一款功能齐全、易于操作的统计分析软件,既适合专业人士处理大量数据,又适合初学者进行简单的实验分析。 ### 回答2: GraphPad Prism 9.5是一款用于科学数据分析和制图的软件,具有图形化界面和用户友好的操作界面。它被广泛应用于医学、生物学、化学、生命科学和社会科学等领域。 GraphPad Prism 9.5提供了多种统计分析方法,包括t检验、方差分析、卡方检验、线性回归、非线性回归、生存分析和逐步多元回归等。这些方法可以帮助用户对数据进行准确的统计分析,从而得出科学结论。 除了统计分析,GraphPad Prism 9.5还提供了各种制图工具,例如柱状图、饼状图、折线图、散点图、密度图、箱线图和热力图等。这些图表具有美观的外观和易于阅读的格式,可以展示数据的趋势和关系。 另外,GraphPad Prism 9.5也支持将制作的图表导出为多种格式,包括PDF、PNG、JPEG和EPS等。用户可以根据需要导出图表,并在论文、演示文稿和海报等科学出版物中使用。 总之,GraphPad Prism 9.5是一款出色的科学数据分析和图表制作软件,其强大的统计分析功能和精美的图表制作功能可以帮助科学家们更有效地解释和传达其研究成果,提高科研工作的效率和质量。 ### 回答3: GraphPad Prism 9.5是数据分析和绘图软件中最流行的一种,被用于生物、医学等领域的研究数据分析和图表制作。在其最新的版本中,增加了不少新的功能和改进,例如增加了数据集的结构化和管理功能,增强了安全性和可扩展性,拓展了统计和回归分析工具,提高了绘制图表的速度和效率。此外,Prism 9.5还配备了全新的交互式媒体工具,支持图表的动态展示和在线共享,使用者可以方便地制作出精美的图表和报告,并与其他人分享和交流自己的研究进度和发现。综上所述,GraphPad Prism 9.5是一款非常实用、易用、高效的数据分析与图表制作软件,为生物、医学等研究领域的科学家提供了重要的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值