지금은 가져 오기 모듈을 구현 중입니다. 그러나 모든 작업을 기록해야한다는 것도 요구 사항입니다. 예를 들어. 고객을 가져올 때 해당 고객이 이미 있는지 확인해야하며 고객이없는 경우 고객을 만들어야합니다. 두 상황을 모두 기록해야합니다. 나는 모든 'LogMessage (...)'호출은 매우 깔끔하지 생각하기 때문에,로그를 사용하여 코드를 혼란스럽게하지 않고 로깅을 적용하는 방법은 무엇입니까?
public event Action<string> OnMessageLog;
public void ImportOrder()
{
LogMessage("The order is being created");
var customer = ImportCustomer("MG_001");
var order = new Order{ Customer = customer };
LogMessage("The order is created");
unitOfWork.Orders.AddObject(order);
}
public Customer ImportCustomer(string customerCode)
{
var customer = this.unitOfWork.Customers.GetByCode(customerCode);
if(customer == null)
{
LogMessage("The customer doesn't exists. A new customer is created");
customer = new Customer{ \\.. here some initialization };
}
else
{
LogMessage("The customer exists.");
}
return customer;
}
private void LogMessage(string message)
{
if(OnMessageLog != null)
{
OnMessageLog(message);
}
}
이 같은 정말 안 :
그래서 그 순간에 나는이 같은 일부 코드가 있습니다.대신 Decorator Pattern을 사용하려고 생각했지만 가져 오기가 꽤 복잡하기 때문에 구현하기가 어려워졌습니다. 그것은 각 액션에 대해 2 가지 메소드를 생성해야한다는 것을 의미합니다. (많은 액션이 있습니다.)
이 코드를 더 읽기 쉽고/더 깔끔하게 만들 수있는 몇 가지 제안이나 아이디어가 있습니까?
확인하면 수도 작품 시나리오에 대한 다음 (이 종류의 전형적인 예입니다) AOP, 쉽게 될,하지만 아이디어는 동일 할 수 로슬린와 AOP, AOP, AOP ... –