在這個物件類中定義了builder內部介面,同時defaultbuilder實現了builder介面,裡面都是對defaultbuilder物件的賦值
}從原始碼中可以發現,使用建造者模式,在建立物件的時候,只需要傳入需要的引數即可,一行**便可完成物件的建立,簡潔方便
這裡模仿這種方式自己建立了乙個user類模擬這個建造者方式
package designpattern.builder;
import lombok.data;
@data
public class user
public inte***ce builder
public static builder start()
private static class defaultbuilder implements builder
@override
public defaultbuilder code(string code)
@override
public user build() }}
user.builder user1 = user.start().code("test1").name("測試1");
user user2 = user1.build();
user user3 = user.start().code("test3").name("測試3").build();
user user4 = user.start().code("test4").build();
user user5 = user.start().name("測試5").build();
system.out.println(json.tojsonstring(user1));
system.out.println(json.tojsonstring(user2));
system.out.println(json.tojsonstring(user3));
system.out.println(json.tojsonstring(user4));
system.out.println(json.tojsonstring(user5));
控制台輸出:
lombok的@builder註解可以起到同樣的作用,再定義完類後,在類標籤加上這個註解即可
舉個栗子:
@builder
@data
public class student
}
控制台出:
建造者模式
1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...
建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
建造者模式
建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...