객체/모델의 단방향 연관 및 양방향 연관

3420 단어

일대일


1. 단방향(X->Y)

package com.xs;

public class X {
	private Y y;

	public Y getY() {
		return y;
	}

	public void setY(Y y) {
		this.y = y;
	}
	
	
}
package com.xs;

public class Y {

}

2. 양방향

package com.xs;

public class X {
	private Y y;

	public Y getY() {
		return y;
	}

	public void setY(Y y) {
		this.y = y;
	}
}
package com.xs;

public class Y {
	private X x;

	public X getX() {
		return x;
	}

	public void setX(X x) {
		this.x = x;
	}

}

다대일


1. 단방향(X->Y)

package com.xs;

public class X {
	private Y y;

	public Y getY() {
		return y;
	}

	public void setY(Y y) {
		this.y = y;
	}
}

4
package com.xs;

public class Y {

}
단방향 다대일과 단방향 일대일의 모델은 똑같고 단방향 일대일은 단방향 다대일의 특수한 상황이다.

2. 양방향

package com.xs;

public class X {
	private Y y;

	public Y getY() {
		return y;
	}

	public void setY(Y y) {
		this.y = y;
	}
}
package com.xs;

import java.util.HashSet;
import java.util.Set;

public class Y {
	private Set<X> xs = new HashSet<X>();

	public Set<X> getXs() {
		return xs;
	}

	public void setXs(Set<X> xs) {
		this.xs = xs;
	}
}

셋:한 쌍


1. 단방향(X->Y)

package com.xs;

import java.util.HashSet;
import java.util.Set;

public class X {
	private Set<Y> ys = new HashSet<Y>();

	public Set<Y> getYs() {
		return ys;
	}

	public void setYs(Set<Y> ys) {
		this.ys = ys;
	}
}
package com.xs;

public class Y {

}

2. 양방향

package com.xs;

import java.util.HashSet;
import java.util.Set;

public class X {
	private Set<Y> ys = new HashSet<Y>();

	public Set<Y> getYs() {
		return ys;
	}

	public void setYs(Set<Y> ys) {
		this.ys = ys;
	}
}
package com.xs;

public class Y {
	private X x;

	public X getX() {
		return x;
	}

	public void setX(X x) {
		this.x = x;
	}
}

다대다


1. 단방향(X->Y)

package com.xs;

import java.util.HashSet;
import java.util.Set;

public class X {
	private Set<Y> ys = new HashSet<Y>();

	public Set<Y> getYs() {
		return ys;
	}

	public void setYs(Set<Y> ys) {
		this.ys = ys;
	}
}

4
package com.xs;

public class Y {
}
단방향 다대다와 단방향 일대다의 모델은 같다.

2. 양방향

package com.xs;

import java.util.HashSet;
import java.util.Set;

public class X {
	private Set<Y> ys = new HashSet<Y>();

	public Set<Y> getYs() {
		return ys;
	}

	public void setYs(Set<Y> ys) {
		this.ys = ys;
	}
}
package com.xs;

import java.util.HashSet;
import java.util.Set;

public class Y {
	private Set<X> xs = new HashSet<X>();

	public Set<X> getXs() {
		return xs;
	}

	public void setXs(Set<X> xs) {
		this.xs = xs;
	}
}

총괄: 단방향 관련은 나 안에 너가 있고 너 안에 내가 없다.쌍방향 연관은 나 안에 너가 있고, 너 안에 내가 있다.

좋은 웹페이지 즐겨찾기