此篇部落格,更換格式為markdown,請檢視:
現在很多人都在用lombok,通過註解就可以簡化**,省略我們好多任務作。但是其中有兩個註解對於我們建立物件非常好用,乙個是@builder,乙個是@access;
主要是學習一下@builder這個註解所涉及到的設計模式;
sqlsession sqlsession = new sqlsessionfactorybuilder()
.opensession();
@data
public class resultobj
public static resultobj successobj(object obj)
public static resultobj successobj(object obj,string message)
public static resultobj failobj()
public static resultobj failobj(string message)
public static resultobj failobj(object result,string message)
}
將乙個複雜物件的構建與它的表示分離,使得同樣的建造過程可以建造不同的表示;(一句話總結,就是建物件唄,不過物件裡面的引數比較多複雜)
首先,我們一般建立物件的方法有兩種:1.構造器建立;2.通過屬性set方法建立;
構造器建立物件:
class a
a(string a)
a(string a,string b)
a(string a,string b,string c)
}
set方式建立物件
class b
public void seta()
public string geta()
}
分析一下上面兩種方式存在的問題:
- 1. 構造器建立物件,多個屬性的話,必須嚴格按照順序注入;set方法不存在這種問題;
- 2.構造器建立物件,可讀性差,如果物件中有多個屬性賦值 ,必須清楚每個屬性引數位置;set方法不存在這種問題;
- 3.set方法建立物件,物件在使用過程中,容易被錯修改;
根據上面可知,當複雜物件建立時,構造器方法可讀性很差,且屬性傳參不方便,set方法建立物件在使用過程中可能出現誤操作的缺點;
建造器模式完美的解決了上面的兩種問題;
通過建立builder介面,或者內建靜態成員類,來建立構造器;
public class nutritionfacts
public builder calorizes(int calorizes)
public builder fat(int fat)
public builder sodium(int sodium)
public builder carbohydrate(int carbohydrate)
//增加乙個建立物件的build
public nutritionfacts build()
}public nutritionfacts(builder builder)
}
上面說了lombok還提供了 @access註解,這個註解的原理比較簡單,就是將傳統的set方法變成靜態,返回當前物件;
class a
}
以上就是對構造器模式的簡單介紹。 基礎設計模式 04 複雜物件建立的建造器模式
現在很多人都在用lombok,通過註解就可以簡化 省略我們好多任務作。但是其中有兩個註解對於我們建立物件非常好用,乙個是 builder,乙個是 access 主要是學習一下 builder這個註解所涉及到的設計模式 1.mybatis獲取sqlsession sqlsession sqlsessi...
SPRING的工程模式建立複雜物件
spring通過工廠來建立物件,而不是new方法,因為工廠能實現解耦,spring所有建立都是通過反射實現的,我們通過配置檔案向spring容器中註冊需要的類,這樣可以使我們的 更容易修改,可維護性更高 set注入簡化寫法 spring複雜物件的建立 比如 資料庫的connection 或者sqls...
js建立物件 設計模式
類的功能 本文就說說如何用js實現對類的封裝,實現上述功能,var person function name,age 如何你覺得ta不像類的話,那麼你可以這樣做 var person function name,age 有了上面的例子之後,我們在此基礎之上就可以進行我們的完善了。var person...