UML类图

代码实现
public abstract class Component
{
protected Component handler;
public void SetHandler(Component handler)
{
this.handler = handler;
}
public abstract void Execute(int i);
}
public class ComponentA : Component
{
public override void Execute(int i)
{
if (i > 0)
Console.WriteLine("i>0");
else if (handler != null)
handler.Execute(i);
}
}
public class ComponentB : Component
{
public override void Execute(int i)
{
if (i <= 0)
Console.WriteLine("i<=0");
else if (handler != null)
handler.Execute(i);
}
}
Python代码实现:
class Component(object):
component=None
def SetComponent(self, component):
self.component=component
def Operate(self):
raise NotImplementedError("abstract class, you know?")
class ComponentA(Component):
def Operate(self):
print "this is componentA, it's running operate method now, shit!"
if not self.component == None:
self.component.Operate()
class ComponentB(Component):
def Operate(self):
print "aha, welcome to componentB, execute operate method now, fuck!"
if not self.component == None:
self.component.Operate()
if __name__ == "__main__":
componentA1=ComponentA()
componentB1=ComponentB()
componentB2=ComponentB()
componentA2=ComponentA()
componentA1.SetComponent(componentB1)
componentB1.SetComponent(componentB2)
componentB2.SetComponent(componentA2)
componentA1.Operate()
本文通过UML类图介绍了责任链模式,并提供了使用C#与Python两种语言实现的具体代码示例。责任链模式允许请求沿着处理者链传递,直到有一个处理者决定处理此请求。
740

被折叠的 条评论
为什么被折叠?



