知识大全 petshop4体现的面向接口编程思想

Posted

篇首语:总有一些人路过你的人生,微不足道又无比重要。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 petshop4体现的面向接口编程思想相关的知识,希望对你有一定的参考价值。

  petshop 充分体现了面向接口编程的思想 就是给你一个接口你别管我是怎么实现的 你只管用别说其他的          namespace PetShop BLL         /// <summary>        /// A business ponent to manage products        /// </summary>        public class Product         // Get an instance of the Product DAL using the DALFactory        // Making this static will cache the DAL instance after the initial load private static readonly IProduct dal = PetShop DALFactory DataAccess CreateProduct();

  在bll层 这里使用创建Produce的接口 你只管调用他的方法

  namespace PetShop IDAL                /// <summary>        /// Interface for the Product DAL        /// </summary>

  public interface IProduct                /// <summary>        /// Method to search products by category name        /// </summary>        /// <param name= category >Name of the category to search by</param>        /// <returns>Interface to Model Collection Generic of search results</returns> IList<ProductInfo> GetProductsByCategory(string category);        /// <summary>        /// Method to search products by a set of keyword        /// </summary>        /// <param name= keywords >An array of keywords to search by</param>        /// <returns>Interface to Model Collection Generic of search results</returns> IList<ProductInfo> GetProductsBySearch(string[] keywords);        /// <summary>        /// Query for a product        /// </summary>        /// <param name= productId >Product Id</param>        /// <returns>Interface to Model ProductInfo for requested product</returns> ProductInfo GetProduct(string productId);

  这里是定义了Product接口和他的虚方法          namespace PetShop SQLServerDAL         public class Product : IProduct         //Static constants private const string SQL_SELECT_PRODUCTS_BY_CATEGORY = SELECT Product ProductId Product Name Product Descn Product Image Product CategoryId FROM Product WHERE Product CategoryId = @Category ; private const string SQL_SELECT_PRODUCTS_BY_SEARCH = SELECT ProductId Name Descn Product Image Product CategoryId FROM Product WHERE (( ; private const string SQL_SELECT_PRODUCTS_BY_SEARCH = LOWER(Name) LIKE % + + % OR LOWER(CategoryId) LIKE % + + % ; private const string SQL_SELECT_PRODUCTS_BY_SEARCH = ) OR ( ; private const string SQL_SELECT_PRODUCTS_BY_SEARCH = )) ; private const string SQL_SELECT_PRODUCT = SELECT Product ProductId Product Name Product Descn Product Image Product CategoryId FROM Product WHERE Product ProductId = @ProductId ; private const string PARM_CATEGORY = @Category ; private const string PARM_KEYWORD = @Keyword ; private const string Parm_PRODUCTID = @ProductId ;        /// <summary>        /// Query for products by category        /// </summary>        /// <param name= category >category name</param>        /// <returns>A Generic List of ProductInfo</returns> public IList<ProductInfo> GetProductsByCategory(string category)         IList<ProductInfo> productsByCategory = new List<ProductInfo>();

  这里是实现Product接口的类          namespace PetShop DALFactory         /// <summary>        /// This class is implemented following the Abstract Factory pattern to create the DAL implementation        /// specified from the configuration file        /// </summary> public sealed class DataAccess         // Look up the DAL implementation we should be using private static readonly string path = ConfigurationManager AppSettings[ WebDAL ]; private static readonly string orderPath = ConfigurationManager AppSettings[ OrdersDAL ]; private DataAccess()         public static PetShop IDAL ICategory CreateCategory() string className = path + Category ; return (PetShop IDAL ICategory)Assembly Load(path) CreateInstance(className);

  这里是利用工厂模式来映射你需要你想创建哪一个

  后面还有一些消息队列MSMQMessage利用cache缓存以后达到异步处理购物车里订单的功能!

cha138/Article/program/net/201311/11385

相关参考