1, 事務指令碼 vs. 領域模型(Transaction Script vs. Domain Model)作者基於功能的複雜性來區分兩種模式的使用時機,卻忽略了另外一個因素:功能的增加領域模型將功能和資料置於同一個對象中,當需要增加新的功能時,只能通過為對象增加新的方法來實現,這造成了對象介面的不穩定,並無法在沒有原始碼的情況下進行功能增加而事務指令碼則可以靈活的進行功能的擴充:增加一個Command
Needle-Extras是Needle的附加庫,可以和Needle一起使用來建立應用程式。這也是本軟體第一次發布,包括如下內容:* AttrInject: this is an implementation of interface injection for Needle, based on an implementation by Christian Neukirchen (thanks, chris2!) This allows you to specify the
JDK1.2以後提供了動態代理的支援,通過實現java.lang.reflect.InvocationHandler介面提供一個執行處理器,然後通過java.lang.reflect.Proxy得到一個代理對象,通過這個代理對象來執行商業方法,在商業方法被調用的同時,執行處理器會被自動調用,從而實現方法攔截。nanning就是這樣原理的,spring也用了動態代理作為實現之一。動態代理定義:A dynamic proxy class is a class that implements a
JetBrains的MPS出來了,Martin Fowler也大力搗鼓出一篇《Language Workbenches: The Killer-App for Domain Specific Languages?》,成為有志於LOP、DSL領域的總領性文章。 首先,瞭解Martin Fowler的立場很重要。但似乎為了保證閱讀率,MF把立場擺到了最後。 1. LOP帶來的兩個最大優點是 a. 通過新的封裝及思維模式,提高程式員的生產率。 b.
一般來說,在模組定一種定義一個類使得這個類能在自己獨立的namespace裡。這樣你的類就不會因為和其它模組中的類重名而出問題,比如: module Foo class Joy def initialize(one, two) puts "one: [#{one}] two: [#{two}]" end end end module Bar class Joy def
寫完代碼產生的架構,少不了需要ant來調用。寫完之後值得一記的東西有三:一、《Ant--The Definitive Guide 2nd》是本不錯的cookbook二、與使用者進行互動式輸入而不是逼著使用者改build.xml下面的代碼運行時,ant會提問"What is the name of your POJO?",讓使用者輸入屬性PojoName的值。<input message="What is the name of your POJO (i.e. Person)?"