13. 例えば
class ClassA
{
public void MethodA()
{
Console.Write("Enter Class A - Method A");
}
class ClassB
{
public void MethodC()
{
Console.Write("Enter Class B - Method C");
// Do Something
// Do Something
Console.Write("Exit Class A - Method A");
Console.Write("Exit Class B - Method C");
}
}
public void MethodB()
{
Console.Write("Enter Class A - Method B");
// Do Something
Console.Write("Exit Class A - Method B");
}
}
オブジェクト分析をしても
切り出すのは難しい
14. アスペクト指向だと…
主機能
class ClassA
{
[LoggingTarget]
public void MethodA()
{
// Do Something
}
[LoggingTarget]
public void MethodB()
{
// Do Something
}
}
class ClassB
{
[LoggingTarget]
public void MethodC()
{
// Do Something
}
}
アスペクト
class LoggingIntercepter : Intercepter
{
public override void OnEnter(MethodInfo info)
{
Console.Write("Enter {0} - {1}", info.DeclaringType.Name, info.Name);
}
public override void OnExit(MethodInfo info)
{
Console.Write("Exit {0} - {1}",info.DeclaringType.Name, info.Name);
}
}