}
// ±»±£ÏÕÈËÔ±µÄÃû³Æ
public ConcreteBuilder setPersonName(String personName) {
this.personName = personName;
return this;
}
// ±»±£ÏÕ¹«Ë¾µÄÃû³Æ
public ConcreteBuilder setCompanyName(String companyName) {
this.companyName = companyName;
return this;
}
// ÆäËûÊý¾Ý
public ConcreteBuilder setOtherData(String otherData) {
this.otherData = otherData;
return this;
}
/**
* ¹¹½¨ÕæÕýµÄ¶ÔÏó²¢·µ»Ø
*
* @return ¹¹½¨µÄ±£ÏÕºÏͬ¶ÔÏó
*/
public InsuranceContract build() {
if (contractId == null || contractId.trim().length() == 0) {
throw new IllegalArgumentException("ºÏͬ±àºÅ²»ÄÜΪ¿Õ");
}
boolean signPerson = (personName != null && personName.trim().length() > 0);
boolean signCompany = (companyName != null && companyName.trim().length() > 0);
if (signPerson && signCompany) {
throw new IllegalArgumentException("Ò»·Ý±£ÏÕºÏͬ²»ÄÜͬʱÓë¸öÈ˺͹«Ë¾Ç©¶©");
}
if (signPerson == false && signCompany == false) {
throw new IllegalArgumentException("Ò»·Ý±£ÏÕºÏͬ²»ÄÜûÓÐÇ©¶©¶ÔÏó");
}
if (beginDate <= 0) {
throw new IllegalArgumentException("Ò»·Ý±£ÏÕºÏͬ±ØÐëÓпªÊ¼ÉúЧµÄÈÕÆÚ");
}
if (endDate <= 0) {
throw new IllegalArgumentException("Ò»·Ý±£ÏÕºÏͬ±ØÐëÓÐʧЧµÄÈÕÆÚ");
}
if (endDate < beginDate) {
throw new IllegalArgumentException("Ò»·Ý±£ÏÕºÏͬµÄʧЧÈÕÆÚ±ØÐë´óÓÚÉúЧÈÕÆÚ");
}
return new InsuranceContract(this);
}
}
}
¡¡¿Í»§¶ËÀà
[java]
package com.bankht.Builder.contract;
/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-6-25 ÏÂÎç02:56:56
*
* @Àà˵Ã÷ £º¿Í»§¶ËÀà
*/
public class Client {
public static void main(String[] args) {
// ´´½¨¹¹½¨Æ÷¶ÔÏó
InsuranceContract.ConcreteBuilder builder = new InsuranceContract.ConcreteBuilder("9527", 123L, 456L);
// ÉèÖÃÐèÒªµÄÊý¾Ý£¬È»ºó¹¹½¨±£ÏÕºÏͬ¶ÔÏó
InsuranceContract contract = builder.setPersonName("ÌØÖÖ±ø-Ak47").setOtherData("test").build();
// InsuranceContract contract = builder.setCompanyName("ÉñÖÝÊýÂë").setOtherData("test").build();
// ²Ù×÷±£ÏÕºÏͬ¶ÔÏóµÄ·½·¨
contract.someOperation();
}
}
package com.bankht.Builder.contract;
/**
* @author: ÌØÖÖ±ø¡ªAK47
* @´´½¨Ê±¼ä£º2012-6-25 ÏÂÎç02:56:56
*
* @Àà˵Ã÷ £º¿Í»§¶ËÀà
*/
public class Client {
public static void main(String[] args) {
// ´´½¨¹¹½¨Æ÷¶ÔÏó
InsuranceContract.ConcreteBuilder builder = new InsuranceContract.ConcreteBuilder("9527", 123L, 456L);
// ÉèÖÃÐèÒªµÄÊý¾Ý£¬È»ºó¹¹½¨±£ÏÕºÏͬ¶ÔÏó
InsuranceContract contract = builder.setPersonName("ÌØÖÖ±ø-Ak47").setOtherData("test").build();
// InsuranceContract contract = builder.setCompanyName("ÉñÖÝÊýÂë").setOtherData("test").build();
// ²Ù×÷±£ÏÕºÏͬ¶ÔÏóµÄ·½·¨
contract.someOperation();
}
}
ÔËÐÐһϣº
[html]
µ±Ç°ÕýÔÚ²Ù×÷µÄ±£ÏÕºÏͬ±àºÅΪ¡¾9527¡¿
±»±£ÏÕµÄΪ¸öÈË£¬¸öÈËÐÕÃû£ºÌØÖÖ±ø-Ak47
µ±Ç°ÕýÔÚ²Ù×÷µÄ±£ÏÕºÏͬ±àºÅΪ¡¾9527¡¿
±»±£ÏÕµÄΪ¸öÈË£¬¸öÈËÐÕÃû£ºÌØÖÖ±ø-Ak47
Èç¹û£¬½«Client.java ¸ÄΪ£º
[java]
InsuranceContract contract = builder.setCompanyName("ÉñÖÝÊýÂë").setOtherData("test").build();
InsuranceContract contract = builder.setCompanyName("ÉñÖÝÊýÂë").setOtherData("test").build();
ÔËÐнá¹ûΪ£º
[html]
µ±Ç°ÕýÔÚ²Ù×÷µÄ±£ÏÕºÏͬ±àºÅΪ¡¾9527¡¿
±»±£ÏÕµÄΪ¹«Ë¾£¬¹«Ë¾Ãû³Æ£ºÉñÖÝÊýÂë
×÷Õߣºm13666368773