건설자 모델 - 통속해설

2067 단어 java 디자인 모드
Builder 모드의 정의는 다음과 같습니다. 복잡한 객체의 구문을 해당 표현과 분리하여 같은 구문 프로세스에서 다른 표현을 작성할 수 있습니다.
알아볼까?정의를 쓰는 사람들이 왜 통속적으로 쓰지 않는지 모르겠다.통속적으로 말하면 복잡한 대상의 창설과 부품의 창설을 분리한다. 예를 들어 배를 만드는 것, 배를 구축하는 대상과 배를 구축하는 부품이 분리된 것이다. 아직 잘 모르니 들을 필요가 없다.예를 들어 고객으로서 배를 만들 때 모든 부품의 건조 과정은 고객으로서 볼 수 없다. 고객이 본 소개는 배는 선체, 갑판, 돛대(배는 아직 만들지 않았다)이다.그래서 고객이 볼 수 없는 것은 부품의 구축 과정이고 고객이 볼 수 있는 것은 대상의 구축 과정이다.
그게 무슨 소용이야?
아니면 위의 그 예에서 고객은 배의 구성을 생각했다. 그리고 배는 몇 가지를 만들 수 있다. 즉, 다른 표현이 있다. 어느 날 고객은 이 배가 마음에 들지 않는 것을 보고 내가 나무를 쓰고 싶다고 말했다. 너희들은 어떻게 철을 사용하느냐에 따라 사장은 설계 도면에 따라 다시 한 번 만들었다.이 과정의 가치가 바로 구현되었다.네, 더 이상 배를 설계할 필요가 없어요.
package designPatterns;
class Ship{
	private String body;
	private String board;
	private String mast;
	public String getBody() {
		return body;
	}
	public void setBody(String body) {
		this.body = body;
	}
	public String getBoard() {
		return board;
	}
	public void setBoard(String board) {
		this.board = board;
	}
	public String getMast() {
		return mast;
	}
	public void setMast(String mast) {
		this.mast = mast;
	}
	
}

interface ShipBuilder{// 
	public void buildBody();
	public void buildBorad();
	public void buildMast();
	public Ship buildShip();
} 

class IronShipBuilder implements ShipBuilder{
	Ship ship=new Ship();
	public void buildBody() {
		// TODO Auto-generated method stub
		ship.setBody(" ");
		System.out.println(" !");
	}

	public void buildBorad() {
		ship.setBoard(" ");
		System.out.println(" ");
		
	}

	public void buildMast() {
		// TODO Auto-generated method stub
		ship.setMast(" ");
		System.out.println(" ");
	}

	public Ship buildShip() {
		// TODO Auto-generated method stub
		System.out.println(" ");
		return ship;// 。
	}
	
}

class ShipDirector{// 
	public static Ship bulidShip(ShipBuilder sb){
		sb.buildBody();
		sb.buildBorad();
		sb.buildMast();
		return sb.buildShip();
	}
}

public class MyBuilder {
	public static void main(String[] args) {
		// ,
		// 
		Ship ship = ShipDirector.bulidShip(new IronShipBuilder());
		// ,
		
	}
}

좋은 웹페이지 즐겨찾기