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
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...