DAO를 사용하는 독학 vb6 프로그래머입니다.Refactor to n-tier
Sub cmdMultiplier_Click() 'Button on form, user interface '
dim Rec1 as recordset
dim strSQL as string
strSQL = "select * from tblCustomers where ID = " & CurrentCustomerID 'inline SQL '
set rec1 = GlobalDataBase.openrecordset(strSQL) ' Data access '
if rec1.bof <> true or rec1.eof <> true then
if rec1.fields("Category").value = 1 then
PriceMultiplier = 0.9 ' Business Logic '
else
priceMultiplier = 1
end if
end if
End Sub
이 (가) 위의 CRUD 애플리케이션의 전체 소스 코드 척하십시오 : 아래는 내가 휘젓다 수있는 코드의 전형적인 조각의 예입니다. 이 디자인이 나쁘다는 것을 알고, 모든 것이 함께 섞여 있습니다. 이상적으로는 세 개의 개별 레이어, 사용자 인터페이스, 비즈니스 로직 및 데이터 액세스가 있어야합니다. 나는 이것이 바람직한 이유를 알아 낸다. 그러나 그것이 어떻게 끝났는지 모르겠다. 그리고 나는 그와 같은 분리가 왜 좋은지 완전히 이해하지 못하는 이유가 무엇인지를 으로 생각한다. 누군가가 위의 말도 안되게 위의 리팩토링을 할 수 있다면 길 아래에 더 많이있을 것이라고 생각합니다. 3 단계로 간단한 예를 들어보세요.
간단히 말하면 너무 단순하기 때문에 이것을 리펙토링하는 것은 매우 어려울 것입니다. 3 단계 응용 프로그램을 사용하면 간단한 예제에 많은 복잡성이 생겨 3 계층 아키텍처가 일반적인 코드보다 간단하다는 것을 정확하게 설명하지 못합니다. – workmad3
무슨 뜻인지는 알지만 그 일이 어떻게 진행되는지 알고 싶었습니다. 그것에 대해 조금 더 생각해 보니 계층으로 분리하는 것이 데이터베이스를 정규화하는 데 아마도 유사하다고 생각하십니까? 피상적 인 수준에서 어떤 보상도없이 복잡성을 추가하는 것으로 보입니다 – kjack
예, 데이터베이스를 정규화하는 것은 유사합니다. 조지에 의해 나는 그가 그것을 얻었다 고 생각한다 (tm)! –