Atitit.biz業務系統 面向框架  面向模式---------數據映射imp

来源:http://www.cnblogs.com/attilax/archive/2016/03/01/5231379.html
-Advertisement-
Play Games

Atitit.biz業務系統 面向框架 面向模式---------數據映射imp 1.1. 面向變數 面向過程 面向對象 面向組件 面向框架 面向服務 面向模式1 1.2. 第2章 架構模式 18 1 1.3. 第3章 設計模式 143 2 1.4. 面向對象中的面向變數全局變數問題2 1.5. 面


Atitit.biz業務系統 面向框架  面向模式---------數據映射imp

 

1.1. 面向變數  面向過程  面向對象 面向組件  面向框架  面向服務 面向模式1

1.2. 2章 架構模式 18 1

1.3. 3章 設計模式 143 2

1.4. 面向對象中的面向變數全局變數問題2

1.5. 面向框架-的結構3

2Code3

2.1.1. orderService4

2.1.2. order_service_dataMaper4bet5

2.2. Everyting is file ----------linux5

 

 

 

1.1. 面向變數  面向過程  面向對象 面向組件  面向框架  面向服務 面向模式

面向變數  asm語言,,變數是global

 

模式 包括 架構模式 and  設計模式

1.2.  第2章 架構模式 18 


  2.1 導言 18 
  2.2 從混亂到有序 19 
  2.2.1 Layers模式 21 
  2.2.2 PipesandFilters模式 34 
  2.2.3 Blackboard模式 46 
  2.3 分散式系統 62 
  2.4 互動式系統 78 
  2.4.1 Model—View—Controller模式 79 
  2.4.2 Presentation—Abstraction—Control模式 93 
  2.5 可適應系統 109 
  2.5.1 Microkernel模式 110 
  2.5.2 Reflection模式 124 

 

作者:: 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 ) 漢字名:艾龍,  EMAIL:[email protected]

轉載請註明來源: http://www.cnblogs.com/attilax/

 

1.3.  第3章 設計模式 143 


  3.1 導言 143 
  3.2 結構分解模式 144 
  3.3 工作組織模式 157 
  3.4 訪問控制 169 
  3.5 管理模式 178 
  3.5.1 CommandProcessor模式 179 
  3.5.2 ViewHandler模式 188 
  3.6 通信模式 198 
  3.6.1 Forwarder—Receiver模式 199 
  3.6.2 Client—Dispatcher—Server模式 209 
  3.6.3 Publisher—Subscriber模式 219 

 

1.4. 面向對象中的面向變數全局變數問題

 

1.其實程式的傳遞就是變數的傳遞,變數是任何編程中不可缺少的因素。隨著很多模式和編程方式的出現,應用設計可能層次比較清楚,更宜人理解。然而變數將變得很多,同樣作用的變數在不同的層中可能不一樣,而且隨著不同開發人員在同一時間開發不同的層或者不同時間開發同一模塊都可能根據自己的想法聲明或者定義某個變數,而他們所定義的這個變數其實都是一樣的, 理論上應該是一個變數,或者說至少命名應該一樣。如果能歸為同樣命名的變數,那就能很大程度上減少維護和開發的工作。所以能否將同樣功能的變數進行統一命名就很有必要。

2.瞭解變數其實就是瞭解業務,雖然很早就強調文檔,強調業務知識的學習,然而我覺得看程式其實是瞭解業務的最好方法,但條件是程式比較清楚, 這裡包括應用的構架清晰,具有相應的備註以及變數的含義清晰。

變數一個很重要的屬性是她的scope, 根據scope我們可以將用到的變數進行分類,幫助我們理解。下麵我就web應用將變數scope進行分類(其實同樣適用於其他應用)

我們把變數分為兩大類, 一類是 面向變數所關心的,他具有跨越型傳遞性,他這裡的跨越型傳遞性表示該變數的所附屬的值會傳遞到下個地方,這個地方可以是下個頁面, 可以是伺服器 可以是資料庫中我們稱該類變數為前鋒型變數

。另一類是 面向對象所不關心的, 他不具有跨越型傳遞性, 他只是作為臨時中介,比如某個頁面的中的臨時變數,java 方法中的臨時變數他們不是我們所關心的,我們稱這裡變數為候補型變數

。對於面向對象的編程我們的原則是:

前鋒型變數命名要很清晰,要能夠聯動,能串成串,不要冗餘;候補型變數命名要簡潔,最好不要游離在方法外,在方法中產生,在方法中消亡。

而對於前鋒型變數 我認為因為他承載著有效數據,他的理解往往反映了業務,並且它是全局性的,具有跨越型的傳遞,所以他的重要性會更大一點,那麼針對他能有很多tool 可以做。

Tool 1:前鋒變數聯動機功能描述:在頁面上定義一個前鋒型變數,那麼可以自動在資料庫中添加該欄位 在DAO層 Business層添加該變數,同時可以實現修改某個頁面變數 同時資料庫以及各個層都能改變該變數。

或者 在資料庫層添加某個欄位 對應能產生頁面,DAOBusiness的前鋒型變數.

Tool2: 前鋒變數檢查工具功能描述:可以對某個頁面,某個配置文件,資料庫 查找所有的前鋒型變數。將這些變數陳列出來給開發人員或者管理人員來分析。

 

1.5. 面向框架-的結構

Ui

Service+ (data imp)

 

 

2. Code

 

public static <t> t getBean(Class<t> class1) {

// attilax 老哇的爪子 j_48_40 o92

if (ati == null// ini singleon patter..

{

ati = Guice.createInjector(new Module() {

 

@Override

public void configure(Binder BinderObj) {

AnnotatedBindingBuilder<DBCfg> bind = BinderObj.bind(DBCfg.class);

bind.toInstance(

getDbcfg().execute(null));

 

 BinderObj.bind(DBX.class).to(DbutilX.class);

 BinderObj.bind(Connection.class).to(ConnectionImp.class);

BinderObj.bind(UrlDslParser.class).to(UrlDslParserV3.class);

BinderObj.bind(StoreService.class).to(OrmStoreService.class);

BinderObj.bind(Function.class)

 

    .annotatedWith(Names.named("order_service_dataMaper"))

 

    .to(order_service_dataMaper4bet.class);

 

 

2.0.1. orderService

@Inject

private LogSvr logSvr;

 

 @Inject  @Named("order_service_dataMaper")

public Function  dataMaper;

 

public int insert(Map order) {

// /...insert

order.put("$op""insert");

order.put("order_id", filex.getUUidName());

order.put("order_money"needMoney);

dataMaper.apply(order);

 

storeSvr.insert(order);

 

int rzt = accSvr.reduceAmount(u.id.toString(), needMoney.doubleValue());

 

 

2.0.2. order_service_dataMaper4bet

package com.attilax.order;

 

import java.util.Map;

import java.util.function.Function;

 

public class order_service_dataMaper4bet implements Function  {

 

@Override

public Object apply(Object t) {

Map order=(Mapt;

order.put("ocid"order.get("order_id"));

return null;

}

 

}

 

 

 

2.1. Everyting is file ----------linux

Everything is 精靈------gameing..

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Java有Maven, Node.js有npm, ROR有gem, 這些語言的程式員在開心地使用包管理工具加速開發效率時,PHPer們還在複製粘貼的黑暗中。PHP在Composer之前,包管理的歷史不堪迴首。 在相當長的一段時間內,如果應用依賴於第三方庫,PHPer需要拷貝這些庫的源代碼, 或者通過
  • 類與實例 對象是一個自包含的實體,用一組可識別特性和行為來標識 簡稱OOP 類就是具有相同的屬性和功能的對象的抽象的集合 ‘class’是便是定義類的關鍵字 (OC中用@interface 類名:繼承類 @end) 第一,類名稱首字母記者要大寫。多個單詞則各個首字母大寫,第二,對外的方法需要用‘pu
  • 1 package com.shejimoshi.behavioral.Command; 2 3 4 /** 5 * 功能:接收命令著者,這個人可以執行多種命令 6 * 時間:2016年3月2日上午11:07:30 7 * 作者:cutter_point 8 */ 9 public class Re
  • 按照之前架構的定義,做好架構首先需要做的就是識別出需要解決的問題。一般來說,如果把真正的問題找到,那麼問題就已經解決了80%了。這個能力基本上就決定了架構師的水平。 那麼面對問題有哪些困難呢? 我們先看一則笑話。女主人公:老公,把袋子里的土豆切一半下鍋。結果老公是把袋子里的每個土豆都削了一半,然後下
  • 憑什麼要用面向對象來編程,不用是否可以?今天我們通過講這麼幾個設計原則來說明為什麼要用面向對象,它的好處在哪裡。 一、單一職責原則: 全稱:“Single-Responsibility Principle” 面向對象設計 說明:就一個類而言,應該只專註於做一件事和僅有一個引起它變化的原因。所謂職責,
  • 獲取【下載地址】 QQ: 313596790 【免費支持更新】支持三大資料庫 mysql oracle sqlsever 更專業、更強悍、適合不同用戶群體【新錄針對本系統的視頻教程,手把手教開發一個模塊,快速掌握本系統】A 代碼生成器(開發利器); 增刪改查的處理類,service層,mybatis
  • 定義: 單例模式:確保某一個類只有一個實例,而且自行實例化並向整個系統提供這個實例。 使用場景: 確保某一個類有且只有一個對象的場景,避免產生多個對象消耗過多的資源,或者某種類型的對象只應該有且只有一個。 UML類圖: 單例模式幾個關鍵點: 1、構造函數不對外開放,一般為private。 2、通過一
  • 第二章:商場促銷——策略模式 策略模式的定義: 策略模式是一種定義一系列演算法的方法,從概念上來看,所有這些演算法完成的都是相同的工作,知識實現不同,他可以以相同的方式調用所有的演算法,減少了各類演算法類與使用演算法類之間的耦合 策略模式的優點 : 1. 策略模式的Strategy 類層次為Context定義
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...