簡單工廠與三層架構(creator)

2021-08-19 21:33:37 字數 2141 閱讀 3232

什麼是設計模式

設計模式是對特定場景下解決類和物件相互通訊的描述

乙個模式含有4個基本要素,名字,問題描述,解決方案和效果;

(design pattern)設計模式是一套被反覆使用,多數人知曉,**設計經驗的總結;

簡單工廠:負責根據我們傳入的引數來建立我們需要的物件,

優點:體積小,只有乙個工廠類

缺點:不符合ocp原則,每當業務增加時,都需要修改工廠

模式中包含的角色和職責

1.工廠(creator)角色 :簡單工廠模式的核心。工廠類可以被外部例項化,建立所需要的產品物件

2.抽象(product)角色:簡單工廠模式所建立的所有物件的父類,它負責描述所公有的公共介面

3.具體產品(concreate product)角色:簡單工廠模式所建立的具體例項物件;

方法工廠:定義乙個所有工廠類的介面,建立物件的功能由介面的實現類負責

優點:符合ocp原則,當業務增加時,不需要修改碼,只需增加對應的實現類工廠即可!

缺點:如果業務龐大,工廠體積會特別龐大,因為乙個工廠實現類只負責對應的一種實現

模式中包含的角色和職責

1.抽象工廠(creator)角色 :工廠模式的核心。任何工廠類都必須實現這個介面

2.具體工廠(concrete)角色:具體工廠類是抽象工廠的乙個實現,負責例項化產品;

3.抽象(product)角色:工廠模式所建立的所有物件的父類,它負責描述所公有的公共介面

3.具體產品(concreate product)角色:工廠模式所建立的具體例項物件;

抽象工廠:整體結構方法工廠幾乎一樣,但是介面裡面定義的是一組例項化物件的抽象方法,其實實現類實現的也是一組物件例項化;

工廠就是用來具體的例項化我們的物件,其存在並不具備其他意義所以不需要把工廠想的太複雜,當我們需要使用工廠模式的時候可以根據我們業務需求定義對應的工廠即可;

簡單工廠與工廠方法的模式的比較

1,工廠方法的核心在乙個抽象工廠類,而簡單工廠模式把核心放在具體類上;

2.工廠方法模式有乙個別名叫多型工廠模式,具體工廠都有乙個共同的介面即抽象工廠,當需要新增新的產品物件時,僅僅需要新增乙個具體物件(產品)及乙個具體工廠,原有工廠不需要進行任何修改。很好的符合了開放-封閉原則

1 什麼是三層架構?

吃飯的時候,首先面對的服務員,我們把需要吃的菜報給服務員,服務員通知廚師做飯,廚師做飯是通過採購購買的原材

料 服務員、廚師、採購員,這就是乙個典型的三層架構。 

相互協調工作,但相互又不插手對方的工作。

2 什麼是三層?

檢視層(jsp,html,js,css...):

主要用於展示客戶端可見的內容,並把客戶端輸入的資料傳遞給業務層

業務邏輯層(servlet):

主要用於接收客戶端傳遞過來的資料,並根據客戶端的請求進行業務處理與判斷,並呼叫資料層實現對應功能。

資料層(model vo pojo、dao、daoimpl):

主要實現對資料的增、刪、改、查。將儲存在資料庫中的資料提交給業務層,同時將業務層處理的資料儲存到資料庫。 

其中model,vo,pojo用來定義跟我們資料庫表對應的類如user類 

dao 用來定義資料庫操作的介面

daoimpl用來實現對應的dao

3 為什麼要使用三層架構?

為了實現高內聚,低耦合,並且把各個層次分隔開,方便於維護於修改,降低每個層次的**量與複雜度。

1.使用設計模式就是站在前人的肩膀上;

2.試程式更易讀;

3.設計模式具有更好的可擴充套件性,就是將不同的演算法封裝在子類中。新增新的子類就能實現新的行為;

4.設計模式可以降低耦合度;

5.設計模式能提高**的重用度。比如介面卡模式。

6.設計模式能為常見的問題提供一些執行緒的解決方案

7.設計模式增加重用**的方式。如轉時期模式

三層架構與簡單工廠模式

3層即所謂 模式 檢視 控制器 檢視 view 代表使用者互動介面 模型 model 就是業務流程 狀態的處理以及業務規則的制定 控制 controller 可以理解為從使用者接收請求,將模型與檢視匹配在一起,共同完成使用者的請求 典型案例 基於反射工廠的三層架構 設計時一般所分模組 dal 資料庫...

簡單介紹三層架構

三層架構 3 tier architecture 通常意義上的三層架構就是將整個業務應用劃分為 介面層 業務邏輯層 資料訪問層。區分層次的目的即為了 高內聚低耦合 的思想,在軟體體系架構設計中,分層式結構是最常見,也是最重要的一種結構,微軟推薦的分層式結構一般分為三層,從下至上分別為 資料訪問層 業...

三層,介面,簡單工廠,抽象工廠

我們做專案的時候通常用以下幾種架構 一.依賴三層進行開發 專案中有sqlserverdal,bll這倆個類庫,sqlserverdal有這樣乙個類customerdal.cs類,在bll層呼叫dal層如下 sqlserverdal.customerdal dal new sqlserverdal.c...