extensionfamilyfactory.cs

来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 116 行

CS
116
字号
/* 
 * ExtensionFactory.cs @Microsoft Visual Studio 2005 <.NET Framework 2.0>
 * AfritXia
 * 2007-12-08
 * 
 * Copyright(c) http://www.AfritXia.NET/
 * 
 */

using System;
using System.Collections.Generic;

using NET.AfritXia.MyHome.Extension.Definition;
using NET.AfritXia.MyHome.Extension.Families;

namespace NET.AfritXia.MyHome.Extension
{
	/// <summary>
	/// 扩展家族工厂
	/// </summary>
	internal sealed class ExtensionFamilyFactory : IExtensionFactory
	{
		// 扩展工厂列表
		private IList<IExtensionFactory> m_extensionFactoryList = null;

		#region 类构造器
		/// <summary>
		/// 类默认构造器
		/// </summary>
		internal ExtensionFamilyFactory(IList<IExtensionFactory> extensionFactoryList)
		{
			this.m_extensionFactoryList = extensionFactoryList;
		}
		#endregion

		/// <summary>
		/// 创建管理员扩展家族
		/// </summary>
		/// <returns></returns>
		public IHomeAdminExtension CreateHomeAdminExtension()
		{
			// 创建管理员扩展家族
			HomeAdminExtensionFamily haef = new HomeAdminExtensionFamily();
			// 管理员扩展
			IHomeAdminExtension hae = null;

			foreach (IExtensionFactory ef in this.m_extensionFactoryList)
			{
				if ((hae = ef.CreateHomeAdminExtension()) != null)
					haef.Add(hae);
			}

			return haef;
		}

		/// <summary>
		/// 创建文章扩展家族
		/// </summary>
		/// <returns></returns>
		public IArticleExtension CreateArticleExtension()
		{
			// 创建分类功能扩展家族
			ArticleExtensionFamily aef = new ArticleExtensionFamily();
			// 分类功能扩展
			IArticleExtension ae = null;

			foreach (IExtensionFactory ef in this.m_extensionFactoryList)
			{
				if ((ae = ef.CreateArticleExtension()) != null)
					aef.Add(ae);
			}

			return aef;
		}

		/// <summary>
		/// 创建评论扩展家族
		/// </summary>
		/// <returns></returns>
		public ICommentExtension CreateCommentExtension()
		{
			// 建立主题功能扩展家族
			CommentExtensionFamily cef = new CommentExtensionFamily();
			// 主题功能扩展
			ICommentExtension ce = null;

			foreach (IExtensionFactory ef in this.m_extensionFactoryList)
			{
				if ((ce = ef.CreateCommentExtension()) != null)
					cef.Add(ce);
			}

			return cef;
		}

		/// <summary>
		/// 创建留言扩展家族
		/// </summary>
		/// <returns></returns>
		public ILWordExtension CreateLWordExtension()
		{
			// 建立留言功能扩展家族
			LWordExtensionFamily lwef = new LWordExtensionFamily();
			// 留言功能扩展
			ILWordExtension lwe = null;

			foreach (IExtensionFactory ef in this.m_extensionFactoryList)
			{
				if ((lwe = ef.CreateLWordExtension()) != null)
					lwef.Add(lwe);
			}

			return lwef;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?