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
  • 1、預覽地址:http://139.155.137.144:9012 2、qq群:801913255 一、前言 隨著網路的發展,企業對於信息系統數據的保密工作愈發重視,不同身份、角色對於數據的訪問許可權都應該大相徑庭。 列如 1、不同登錄人員對一個數據列表的可見度是不一樣的,如數據列、數據行、數據按鈕 ...
  • 前言 上一篇文章寫瞭如何使用RabbitMQ做個簡單的發送郵件項目,然後評論也是比較多,也是準備去學習一下如何確保RabbitMQ的消息可靠性,但是由於時間原因,先來說說設計模式中的簡單工廠模式吧! 在瞭解簡單工廠模式之前,我們要知道C#是一款面向對象的高級程式語言。它有3大特性,封裝、繼承、多態。 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 介紹 Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程 ...
  • 創建一個webapi項目做測試使用。 創建新控制器,搭建一個基礎框架,包括獲取當天日期、wiki的請求地址等 創建一個Http請求幫助類以及方法,用於獲取指定URL的信息 使用http請求訪問指定url,先運行一下,看看返回的內容。內容如圖右邊所示,實際上是一個Json數據。我們主要解析 大事記 部 ...
  • 最近在不少自媒體上看到有關.NET與C#的資訊與評價,感覺大家對.NET與C#還是不太瞭解,尤其是對2016年6月發佈的跨平臺.NET Core 1.0,更是知之甚少。在考慮一番之後,還是決定寫點東西總結一下,也回顧一下.NET的發展歷史。 首先,你沒看錯,.NET是跨平臺的,可以在Windows、 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 添加節點(nodes) 通過上一篇我們已經創建好了編輯器實例現在我們為編輯器添加一個節點 添加model和viewmode ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...
  • 類型檢查和轉換:當你需要檢查對象是否為特定類型,並且希望在同一時間內將其轉換為那個類型時,模式匹配提供了一種更簡潔的方式來完成這一任務,避免了使用傳統的as和is操作符後還需要進行額外的null檢查。 複雜條件邏輯:在處理複雜的條件邏輯時,特別是涉及到多個條件和類型的情況下,使用模式匹配可以使代碼更 ...
  • 在日常開發中,我們經常需要和文件打交道,特別是桌面開發,有時候就會需要載入大批量的文件,而且可能還會存在部分文件缺失的情況,那麼如何才能快速的判斷文件是否存在呢?如果處理不當的,且文件數量比較多的時候,可能會造成卡頓等情況,進而影響程式的使用體驗。今天就以一個簡單的小例子,簡述兩種不同的判斷文件是否... ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...