分享乙個UI與業務邏輯分層的框架 一

2022-02-24 18:48:29 字數 1295 閱讀 2402

.net(c#)的winform如何簡單易行地進行ui與業務邏輯分層?本系列文章介紹乙個winform分層框架,該框架針對winform中的textbox,checkbox,radiobutton三種ui控制項進行簡單粗暴的ui與業務邏輯分層實現。

軟體行業發展至今,分層的思想可謂是深入人心。企業應用架構模式中三層架構的思想早以眾人皆知,mvc的框架正在引領著web開發的潮流。但在mes系統開發這塊,雖然眾多廠商均標榜自身產品皆採用分層架構,但細究下也只是框架上做到了分層,在粗粒度上還是會出現混層的情況。從筆者近年來接觸的mes系統來看真正做到細粒度的分層基本上可以說是沒有。尤其是winform這塊,ui與業務邏輯基本上是混雜在一起,給單元測試和**重用帶來了極大的困難。不僅在產品上有這樣的情況,在程式設計師教育上也存在同樣的問題。君不見,21天入門到精通系列基本上都是ui和業務邏輯混雜在一起,初級程式設計師基本上也都是乙個窗體檔案加乙個cs檔案直接解決問題。

框架參照mediator模式(隱式中介模式)進行ui與業務邏輯分離,支援textbox,checkbox,radiobutton三種ui控制項,生成uimediator.dll。

專案中通過引用uimediator.dll使用。

如上所示:from1為ui,txtname為textbox控制項,cbcheck為checkbox控制項,rbbutton1、rbbutton2為radiobutton控制項。

新建from1class為後台(業務邏輯)類,繼承ipropertychange(命名空間uimediator)介面並實現方法,如下**所示:

public class form1class : ipropertychange

}

private string name;

public string name

set

}private bool check;

public bool check

set

}private bool radio1;

public bool radio1

set

}private bool radio2;

public bool radio2

set

}

form1class fc = new form1class();
不用寫**,ui控制項的輸入或選擇能及時被後台業務邏輯類的屬性所感知

在後台業務邏輯類中驅動ui顯示時只需要呼叫updateui方法

分享乙個UI與業務邏輯分層的框架 三

前兩篇講解了uimediator框架的使用及具體原理 本篇講述mediatormanager的實現 及展望。mediatormanager的作用有兩點 一是解除前端對mediator子類的依賴,所有前端只需與mediatormanager互動,不需知道mediator子類 二是通過mediatorm...

乙個業務邏輯引發的對多表連線的思考

批量插入語句 insert into 保養表 value.select value.from 裝備表 實現上面業務邏輯主要難點是在查的部分,實現 在滿足現在時間大於保養時間的情況下,有兩種情況會被插入到保養表裡.1 該裝備在保養表裡的state 0的,2 該裝備在保養表裡沒有的 實現這個需求可以有兩...

乙個閘道器與多UI應用

參考 先看目標架構圖 1.包含乙個閘道器gateway,兩個ui應用 分別為ui和admin 乙個資源resource應用,乙個redis 瀏覽器忽略 2.無論是閘道器本身,還是兩個ui應用,還是資源應用,都要通過閘道器去訪問,而不能直接訪問ui應用或資源應用 3.閘道器,ui應用,資源應用都共享r...