【正文】
? Transaction state ? Lazy materialization 2020/11/4 59 Shanghai Jiaotong University Problem: How to map classes to data in a RDB ? Solution (Representing objects as tables): define a table for each persistent class ? Each attribute bees a column ? New problem: How to deal with plex attributes (see “Representing object relationships as Tables”) 2020/11/4 60 Shanghai Jiaotong University 對(duì)象表示為表模式 2020/11/4 61 Ma n u f a c t u r e rn a m ec i t y. . .. . .n a m e c i t yN o w amp。t know or want to describe the details of how the Jess rule engine works, but just want to show collaboration with it. UML notation : UML path name to indicate packaging onPropertyEvent(s, , total) PropertyListener Shanghai Jiaotong University 簡(jiǎn)單包和子系統(tǒng) ?某些包就是子系統(tǒng) ? Persistence, POSRuleEngine,… ?某些包只是對(duì)象集合 ? Pricing Package 2020/11/4 24 Shanghai Jiaotong University 外觀(guān) ? 訪(fǎng)問(wèn)代表子系統(tǒng)的包的方法最常用的模式就是外觀(guān)模式 ? 外觀(guān)一般不能暴露太多的低層操作 ? 外觀(guān)經(jīng)常是下層子系統(tǒng)對(duì)象的協(xié)調(diào)器 2020/11/4 25 171。interface187。interface187。Shanghai Jiaotong University 第 11講 . 架構(gòu)與其他模式 Cao Jian CIT Lab, Shanghai Jiaotong University Shanghai Jiaotong University 內(nèi)容 ?架構(gòu)分析 ?邏輯結(jié)構(gòu)精化與分層模式 ?其它模式 2020/11/4 2 Shanghai Jiaotong University 架構(gòu)分析的意義 ?降低在系統(tǒng)設(shè)計(jì)中丟失某些重要因素的風(fēng)險(xiǎn) ?避免在低優(yōu)先級(jí)的問(wèn)題上花費(fèi)過(guò)多的精力 ?有助于產(chǎn)品與業(yè)務(wù)目標(biāo)的一致 2020/11/4 3 Shanghai Jiaotong University 何時(shí)開(kāi)始架構(gòu)分析 ?早期工作中就要識(shí)別和解決架構(gòu)問(wèn)題 ?架構(gòu)分析和早期開(kāi)發(fā)活動(dòng)并行 2020/11/4 4 Shanghai Jiaotong University 變化點(diǎn)和進(jìn)化點(diǎn) ?變化點(diǎn):當(dāng)前現(xiàn)有系統(tǒng)或需求中的變化之處 ?進(jìn)化點(diǎn):現(xiàn)有需求中不存在,但可能在將來(lái)發(fā)生,推測(cè)性的變化點(diǎn) 2020/11/4 5 Shanghai Jiaotong University 架構(gòu)分析 ?架構(gòu)分析 是在功能性需求(例如銷(xiāo)售處理)的語(yǔ)境中,識(shí)別和處理系統(tǒng)的非功能性需求(例如安全需求等)的活動(dòng)。 ICreditAuthorization ServiceAdapter ServiceAccess Inventory 171。 IInventoryAdapter Jess POSRuleEngine POSRuleEngineFacade SOAP Shanghai Jiaotong University 2020/11/4 22 Log4J Technical Services Domain Presentation Jess Persistence POSRuleEngine Inventory Payments ServiceAccess Pricing Sales Text Swing SOAP Hide the specific types and focus on illustrating the packagepackage coupling Shanghai Jiaotong University 層內(nèi)和包間交互場(chǎng)景 2020/11/4 23 : Domain:: Sales:: Register :Cashier : Presentation:: Swing:: Process SaleFrame enterItem (id, qty) 171。subsystem187。 Z e n Mu mb a iMA N U F A C T U R E R T A B L E: Ma n u f a c t u r e rn a m e = N o w amp。 // hook method return getObjectFromRecord( oid, dbRec )。 return ps。 dbRec = SQL execution result of: Select * from + tableName + where key = + key return dbRec。constructor187。 Z e n M u m b a iM A N U F A C T U R E R T A B L E: M a n u f a c t u r e rc i t y = M u m b a in a m e = N o w amp。subsystem187。 : Tech Services:: Persistence:: Persistence Facade spec := getProduct Spec(id) x := isInvalid (lineItem, sale) spec := getObject(...,id) 171。 IInventoryAdapter Jess A general purpose third party rules engine. POSRuleEngine POSRuleEngineFacade SOAP not the Java Swing libraries, but our GUI classes based on Swing Shanghai Jiaotong University 層內(nèi)耦合和包間耦合 2020/11/4 21 Log4J Technical Services Domain Presentation Pricing Persistence DBFacade Taxes 171。ade, Strategy Pattern ? Idioms ? Language or implementationoriented lowlevel design solutions: Singleton pattern 2020/11/4 15 Shanghai Jiaotong University : 分層 Shanghai Jiaotong University (1)問(wèn)題 ?在應(yīng)用中,哪一個(gè)部分最容易改變 ? ? Interface? ? Application logic? 2020/11/4 17 Shanghai Jiaotong University (2)解決方案 ?將大型系統(tǒng)的邏輯結(jié)構(gòu)分成具有各個(gè)包含內(nèi)部相關(guān)責(zé)任的層 . ?層內(nèi)耦合 2020/11/4 18 Shanghai Jiaotong University Pr e sen ta ti on( A K A I n t e r f a c e , U I , V i e w )A p p l i ca ti o n( A K A W o r k f l o w , P r o c e s s ,M e d i a t i o n , A p p C o n t r o l l e r )D o m ai n (s)( A K A B u s i n e s s ,B u s i n e s s S e r v i c e s , M o d e l )T ec hni ca l S er vi ces( A K A T e c h n i c a l I n f r a s t r u c t u r e ,H i g h l e v e l T e c h n i c a l S e r v i c e s )F o u n da ti o n( A K A C o r e S e r v i c e s , B a s e S e r v i c e s ,L o w l e v e l T e c h n i c a l S e r v i c e s / I n f r a s t r u c t u r e )? G U I w i n d o w s? r e p o r t s? s p e e c h i n t e r f a c e? H T M L , X M L , X S L T , J S P , J a v a s c r i p t , . . .? h a n d l e s p r e s e n t a t i o n l a y e r r e q u e s t s? w o r k f l o w? s e s s i o n s t a t e? w i n d o w / p a g e t r a n s i t i o n s? c o n s o l i d a t i o n / t r a n s f o r m a t i o n o f d i s p a r a t ed a t a f o r p r e s e n t a t i o n? h a n d l e s a p p l i c a t i o n l a y e r r e q u e s t s? i m p l e m e n t a t i o n o f d o m a i n r u l e s? d o m a i n s e r v i c e s (P O S , I n v e n t o r y) s e r v i c e s m a y b e u s e d b y j u s t o n ea p p l i c a t i o n , b u t t h e r e i s a l s o t h e p o s s i b i l i t yo f m u l t i a p p l i c a t i o n s e r v i c e s? ( r e l a t i v e l y ) h i g h l e v e l t e c h n i c a l s e r v i c e sa n d f r a m e w o r k s? P e r s i s t e n c e, S e c u r i t y? l o w l e v e l t e c h n i c a l s e r v i c e s , u t i l i t i e s ,a n d f r a m e w o r k s? d a t a s t r u c t u r e s , t h r e a d s , m a t h ,f i l e , D B , a n d n e t w o r k I / Om o r ea p ps p e c i f i cB u si n ess I n fra s tru ctu re( A K A L o w l e v e l B u s i n e s s S e r v i c e s )? v e r y g e n e r a l l o w l e v e l b u s i n e s s s e r v i c e su s e d i n m a n y b u s i n e s s d o m a i n s? C u r r e n c y C o n v e r t e r2020/11/4 19 Shanghai Jiaotong University 2020/11/4 20 Log4J Technical Services Domain Presentation Pricing PricingStrategy Factory Text ProcessSale Conso