unforgivingbuilder.java

来自「本书透彻讲解了经典的《设计模式:可复用面向对象软件的基础》一书涵盖的23种基本设」· Java 代码 · 共 55 行

JAVA
55
字号
package com.oozinoz.reservation;

/*
 * Copyright (c) 2001 Steven J. Metsker.
 * 
 * Steve Metsker makes no representations or warranties about
 * the fitness of this software for any particular purpose, 
 * including the implied warranty of merchantability.
 *
 * Please use this software as you wish with the sole
 * restriction that you may not claim that you wrote it.
 */
/**
 * This class builds a valid reservation from its attributes.
 * The <code>build</code> method throws an exception if asked 
 * to build in advance of having valid parameters for a
 * reservation.
 * 
 * @author Steven J. Metsker
 */
public class UnforgivingBuilder extends ReservationBuilder 
{
/**
 * Create a valid reservation. Throw an exception if any
 * required attribute of a reservation is missing.
 * 
 * @return a valid reservation
 *
 * @exception BuilderException if any attribute of a 
 *                             reservation is missing
 */
public Reservation build() throws BuilderException 
{
	if (date == null) {
		throw new BuilderException("Valid date not found");
	}
	if (city == null) {
		throw new BuilderException("Valid city not found");
	}
	if (headcount < MINHEAD) {
		throw new BuilderException(
			"Minimum headcount is " + MINHEAD); 
	}
	if (dollarsPerHead * headcount < MINTOTAL) {
		throw new BuilderException(
			"Minimum total cost is " + MINTOTAL); 
	}
	return new Reservation(
		date, 
		headcount, 
		city, 
		dollarsPerHead, 
		hasSite); 
}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?