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
  • PasteSpider是什麼? 一款使用.net編寫的開源的Linux容器部署助手,支持一鍵發佈,平滑升級,自動伸縮, Key-Value配置,項目網關,環境隔離,運行報表,差量升級,私有倉庫,集群部署,版本管理等! 30分鐘上手,讓開發也可以很容易的學會在linux上部署你得項目! [從需求角度介 ...
  • SQLSugar是什麼 **1. 輕量級ORM框架,專為.NET CORE開發人員設計,它提供了簡單、高效的方式來處理資料庫操作,使開發人員能夠更輕鬆地與資料庫進行交互 2. 簡化資料庫操作和數據訪問,允許開發人員在C#代碼中直接操作資料庫,而不需要編寫複雜的SQL語句 3. 支持多種資料庫,包括但 ...
  • 在C#中,經常會有一些耗時較長的CPU密集型運算,因為如果直接在UI線程執行這樣的運算就會出現UI不響應的問題。解決這類問題的主要途徑是使用多線程,啟動一個後臺線程,把運算操作放在這個後臺線程中完成。但是原生介面的線程操作有一些難度,如果要更進一步的去完成線程間的通訊就會難上加難。 因此,.NET類 ...
  • 一:背景 1. 講故事 前些天有位朋友在微信上丟了一個崩潰的dump給我,讓我幫忙看下為什麼出現了崩潰,在 Windows 的事件查看器上顯示的是經典的 訪問違例 ,即 c0000005 錯誤碼,不管怎麼說有dump就可以上windbg開幹了。 二:WinDbg 分析 1. 程式為誰崩潰了 在 Wi ...
  • CSharpe中的IO+NPOI+序列化 文件文件夾操作 學習一下常見的文件、文件夾的操作。 什麼是IO流? I:就是input O:就是output,故稱:輸入輸出流 將數據讀入記憶體或者記憶體輸出的過程。 常見的IO流操作,一般說的是[記憶體]與[磁碟]之間的輸入輸出。 作用 持久化數據,保證數據不再 ...
  • C#.NET與JAVA互通之MD5哈希V2024 配套視頻: 要點: 1.計算MD5時,SDK自帶的計算哈希(ComputeHash)方法,輸入輸出參數都是byte數組。就涉及到字元串轉byte數組轉換時,編碼選擇的問題。 2.輸入參數,字元串轉byte數組時,編碼雙方要統一,一般為:UTF-8。 ...
  • CodeWF.EventBus,一款靈活的事件匯流排庫,實現模塊間解耦通信。支持多種.NET項目類型,如WPF、WinForms、ASP.NET Core等。採用簡潔設計,輕鬆實現事件的發佈與訂閱。通過有序的消息處理,確保事件得到妥善處理。簡化您的代碼,提升系統可維護性。 ...
  • 一、基本的.NET框架概念 .NET框架是一個由微軟開發的軟體開發平臺,它提供了一個運行時環境(CLR - Common Language Runtime)和一套豐富的類庫(FCL - Framework Class Library)。CLR負責管理代碼的執行,而FCL則提供了大量預先編寫好的代碼, ...
  • 本章將和大家分享在ASP.NET Core中如何使用高級客戶端NEST來操作我們的Elasticsearch。 NEST是一個高級別的Elasticsearch .NET客戶端,它仍然非常接近原始Elasticsearch API的映射。所有的請求和響應都是通過類型來暴露的,這使得它非常適合快速上手 ...
  • 參考delphi的代碼更改為C# Delphi 檢測密碼強度 規則(仿 google) 仿 google 評分規則 一、密碼長度: 5 分: 小於等於 4 個字元 10 分: 5 到 7 字元 25 分: 大於等於 8 個字元 二、字母: 0 分: 沒有字母 10 分: 全都是小(大)寫字母 20 ...