2022-03-25 TIL

이창호·2022년 3월 25일
0

데브코스 5일차

JAVA

핵심 비즈니스 로직은 어떤 디펜던시도 가지지 않는게 좋다.

funtional interface 구현체 안에서 사용하는 변수들 중 범위 밖의 변수는 읽을 수는 있으나 쓰는것은 권장하지 않는다. ( IDE에서 막음 )

	int a = 0;
    
	hello.funcIntrfce((i) -> {
    	bye.funcIntrfce((j) -> {
    		a += 1; (X)    	
        }
    }

이유는 멀티쓰레드 환경에서 동작한다면 각각의 쓰레드가 사용하려 하기 때문에 문제가 생긴다. 다만 사용하려면 동기화 기능을 사용하면 된다.

	AtomicInteger a = 0;
    
    hello.funcIntrfce((i) -> {
    	bye.funcIntrfce((j) -> {
    		a.addAndGet(1); (O)
        }
    }

추가_
OOP에서 책임은 변경의 이유다.
ISP에서는 최소주의로 인터페이스를 나눠야한다.

profile
이타적인 기회주의자

0개의 댓글