흩어진 코드를 한 곳으로 모으자.
class A {
method a() {
AAAA
내용1
BBBB
}
method b() {
AAAA
내용2
BBBB
}
}
class B {
method c() {
AAAA
내용3
BBBB
}
}
위 상황에선 AAAA를 AA로 바꾸고 싶다면, 일일이 바꿔야 한다.
부가적으로 하던 공통의 일들은 따로 모으면 안 되나?
⬇️
class A {
method a() {
내용1
}
method b() {
내용2
}
}
class B {
method c() {
내용3
}
}
class AAAABBBB {
method aaaabbbb(JoinPoint point) {
AAAA
point.execute()
BBBB
}
}
공통 관심 사항을 따로 빼서 정의해 놓았다.
A.java —(AOP)—→ A.classA.java → A.class —(AOP)—→ 메모리