標籤:builder設計模式 java builder
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/3F/EB/wKioL1PMzQKxSTJRAAKUiSwCEcE781.jpg" title="QQ圖片20140721161402.jpg" alt="wKioL1PMzQKxSTJRAAKUiSwCEcE781.jpg" />
Builder設計模式:個人認為,核心在於兩個類。Builder類和Director類。通過Builder類和Director類,把萬事萬物抽象為組件和組裝兩部分。通過兩部分的配合,把最終的產品,展示給客戶。,只組裝了一款產品。
公司做大以後,不僅可以提供一款產品。根據已有的功能多少和精簡,可以快速生產出多種的產品,只要不同的construct和Product就可以了。construct提供了三個功能,說明這是一款lenovo的thinkpadT430膝上型電腦。如果construct只提供了一個show功能,那可能就是聯想的平板了。
public interface Builder { void call(); void show(); void work(); Product getResult();}
public class Lenovo implements Builder { private Product lenovo; public void call() { // TODO: implement lenovo.setCallFun("lenovo call"); } public void show() { // TODO: implement lenovo.setShowFun("lenovo show"); } public void work() { // TODO: implement lenovo.setWorkFun("lenovo work"); } public Product getResult() { // TODO: implement return this.lenovo; } public Lenovo() { // TODO: implement lenovo = new Product(); }}
public class Product { private String callFun; private String showFun; private String workFun; public String getCallFun() { return callFun; } public void setCallFun(String newCallFun) { callFun = newCallFun; } public String getShowFun() { return showFun; } public void setShowFun(String newShowFun) { showFun = newShowFun; } public String getWorkFun() { return workFun; } public void setWorkFun(String newWorkFun) { workFun = newWorkFun; }}
public class Director { private Builder builder; public Director(Builder builder) { // TODO: implement this.builder= builder; } public void construct() { // TODO: implement builder.call(); builder.show(); builder.work(); }}
public class CallBuilder {private static Builder builder;private static Director director;private static Product product;public static void main(String[] args) {builder = new Lenovo();director = new Director(builder);director.construct();product = builder.getResult();System.out.println(product.getCallFun());System.out.println(product.getShowFun());System.out.println(product.getWorkFun());}}
Builder設計模式