基礎設計模式 04 複雜物件建立的建造器模式

2022-03-23 00:46:16 字數 2019 閱讀 7336

此篇部落格,更換格式為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...