핵심: 흩어진 코드를 한 곳으로 모아라

class A {
	method a() {
		AAA
		오늘은 7월 4일 미국 독립 기념일이래요.
		BBB
	}
}
class B {
	method b() {
		AAA
		저는 아침에 운동을 다녀와서 밥먹고 빨래를 했습니다.
		BBB
	}
}
class C {
	method c() {
		AAA
		저녁은 이거 찍느라 못 먹었는데 제육 먹고 싶네요.
		BBB
	}
}

흩어진 코드를 모아라

class A {
	method a() {
		오늘은 7월 4일 미국 독립 기념일이래요.
	}
}
class B {
	method b() {
		저는 아침에 운동을 다녀와서 밥먹고 빨래를 했습니다.
	}
}
class C {
	method c() {
		저녁은 이거 찍느라 못 먹었는데 제육 먹고 싶네요.
	}
}
class AAABBB {
	method aaa() {
		AAA
	}
	method bbb() {
		BBB
	}
}

OR

class AAABBB {
	method aaabbb(JoinPoint point) {
		AAA
		point.execute()
		BBB
	}
}

구현 기법