2018年6月12日 星期二

爛 code 收集器//出現太多的成員物件存取....

在重構這本書有提到「若你的程式都對另一個物件取屬性,其實該function也許該屬於被取屬性的物件,比較恰當。」 下面這一段程式,大量的出現 TransactionResponseMessage 存取 MessageInfo 。

public class TransactionResponseMessage : IResponseMessage
{
  public void Process(Message.MessageInfo MessageInfo)
  {
    MessageInfo.Transaction = Util.CreateTransaction();
    MessageInfo.Cs.Enter();
    try
    {
      if (MessageInfo.IsSuccess)
        ProcessMessageLogic(MessageInfo);
    }
    catch (Exception ex)
    {
      MessageInfo.Transaction.TxResult = false;
      MessageInfo.SetXmlElementData(false, ex.Message);
    }
    finally
    {
      if (MessageInfo.Transaction.TxResult)
          MessageInfo.Transaction.Commit();
      else
          MessageInfo.Transaction.Rollback();

      MessageInfo.OnMessagePorcessCompleted();
    }
    MessageInfo.Cs.Leave();
  }

  public virtual void ProcessMessageLogic(Message.MessageInfo MessageInfo)
  {
      throw new NotImplementedException();
  }
}