ASP.NET—- Microsoft .NET Pet Shop 3.x(二)

來源:互聯網
上載者:User

正在學習PetShop3.x,現將一些自己的一些總結寫出來.

PetShop3.x分層分得很清楚,分別為UI,Business Layer,Data  Access Layer,典型的N層體繫結構.表現的

非常棒.

但是仔細一看原始碼,發現並不是那麼簡單分清楚,原因就是在表現Data Access layer時,做了一些易於擴充的

架構,那就時原廠模式.所以為了把它搞清出,我專門選了一個功能來研究,其他的功能基本上都是一樣,大同小異了.我挑選的是Product這個.

先來一張圖:


可以看到,PetShop.Web的Catagory調用BLL層裡的Product,

代碼如下:可以在catagory.aspx.cs中找到

 // Check to see if the contents are in the Data Cache

   if(Cache[categoryKey] != null){

    // If the data is already cached, then used the cached copy

    products.DataSource = (IList)Cache[categoryKey];

   }else{

    // If the data is not cached, then create a new products object and request the data

    Product product = new Product();

    IList productsByCategory = product.GetProductsByCategory(categoryKey);


    // Store the results of the call in the Cache and set the time out to 12 hours

    Cache.Add(categoryKey, productsByCategory, null, DateTime.Now.AddHours(12), Cache.NoSlidingExpiration , CacheItemPriority.High, null);

    products.DataSource = productsByCategory;

   }

而PetShop.BLL.Product的GetProductsByCategory是如何處理的呢?

看看如下代碼

 public IList GetProductsByCategory(string category) {

   // Return null if the string is empty

   if (category.Trim() == string.Empty)

    return null;

   // Get an instance of the Product DAL using the DALFactory

   IProduct dal = PetShop.DALFactory.Product.Create();

   // Run a search against the data store

   return dal.GetProductsByCategory(category);


  }


上面就是其實現代碼了.我們會發現用到了了PetShop.DALFactory,這個就是原廠模式了.Create了一個IProduct的執行個體.其實

這個時候它建立的是來自PetShop.SQLServerDAL的Product類,所以調用的是PetShop.SQLServerDAL.Product.GetProductByCatagory方法,而不是PetShop.OracleDAL.Product.GetProductByCatagory.關於這個以後再來討論.

說到這裡,我想我對他的如何調用都熟悉了.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.