티스토리 뷰

tv1 패키지

: // 결합도가 높은 프로그램은 좋은 프로그램X 수정시 모두 갈아엎어야함
// 응집도가 높은 프로그램과 다르다.

package tv1;

public class LgTv {
	public void turnOn() {
		System.out.println("LG TV-전원을 켠다");
	}
	public void turnOff() {
		System.out.println("LG TV-전원을 끈다");
	}
	public void soundUp() {
		System.out.println("LG TV-소리를 높인다");
	}
	public void soundDown() {
		System.out.println("LG TV-소리를 줄인다");
	}
}

 

package tv1;

public class SamsungTv {
	public void powerOn() {
		System.out.println("Samsung TV-전원을 켠다");
	}
	public void powerOff() {
		System.out.println("Samsung TV-전원을 끈다");
	}
	public void volumeUp() {
		System.out.println("Samsung TV-소리를 높인다");
	}
	public void volumeDown() {
		System.out.println("Samsung TV-소리를 줄인다");
	}
}

 

package tv1;
//결합도가 높다

public class TvUser {
	public static void main(String[] args) {
		String in=args[0];   // lg or samsung를 입력
		
		if(in.equals("lg")) {
			LgTv tv=new LgTv();
			tv.turnOn();
			tv.turnOff();
			tv.soundUp();
			tv.soundDown();
		}else if(in.equals("samsung")) {
			SamsungTv tv=new SamsungTv();
			tv.powerOn();
			tv.powerOff();
			tv.volumeUp();
			tv.volumeDown();
		}else {
			System.out.println("error");
		}
	}
}

 

 

tv2 패키지

package tv2;

public class LgTv implements Tv{
	@Override
	public void powerOn() {
		System.out.println("LG TV-전원을 켠다");
	}
	@Override
	public void powerOff() {
		System.out.println("LG TV-전원을 끈다");
	}
	@Override
	public void soundUp() {
		System.out.println("LG TV-소리를 높인다");
	}
	@Override
	public void soundDown() {
		System.out.println("LG TV-소리를 줄인다");
	}
}

 

package tv2;

public class SamsungTv implements Tv{
	@Override
	public void powerOn() {
		System.out.println("Samsung TV-전원을 켠다");
	}
	@Override
	public void powerOff() {
		System.out.println("Samsung TV-전원을 끈다");
	}
	@Override
	public void soundUp() {
		System.out.println("Samsung TV-소리를 높인다");
	}
	@Override
	public void soundDown() {
		System.out.println("Samsung TV-소리를 줄인다");
	}
}

 

package tv2;

public interface Tv {
	public void powerOn();
	public void powerOff();
	public void soundUp();
	public void soundDown();
}

 

package tv2;
//다형성을 이용해서 결합도를 낮춤
public class TvUser {
	public static void main(String[] args) {
		String in=args[0];   // lg or samsung를 입력 //Run as로
		Tv tv=null;          //부모의 참조변수
		
		if(in.equals("lg")) {
			tv=new LgTv();
		}else if(in.equals("samsung")) {
			tv=new SamsungTv();
		}else {
			System.out.println("error");
		}
		tv.powerOn();
		tv.powerOff();
		tv.soundUp();
		tv.soundDown();
	}
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함