欢迎光临散文网 会员登陆 & 注册

解决代码坏味道middleman

2023-04-19 22:14 作者:bibnoifasdfadf  | 我要投稿

在Python编程中,Middle Man是一种常见的代码坏味道,它的主要表现是在一个对象和它所依赖的对象之间插入了过多的中间层。这些中间层可能会增加代码的复杂性和冗余性,从而使得代码难以维护和扩展。  以下是几种常见的解决方案:  1. 去除无用中间层  在一个对象和它所依赖的对象之间插入过多的中间层时,经常会出现一些无用的中间层。去除这些无用的中间层可以减少代码的复杂性,从而使得代码更易于维护和扩展。通常,在去除无用中间层时,可以使用一些简单的重构方法,例如:去除只传递消息的方法、合并仅仅委托给他人的方法、合并仅仅简单调用的方法、把委托给其他对象的方法直接传递给该对象等。  例如,下面是一个典型的Middle Man代码块: class MiddleMan:   def __init__(self, ob):     self.ob = ob   def get_value(self):     return self.ob.get_value() 在上述代码中,MiddleMan类仅仅是简单地委托了它所持有的对象(ob)的get_value方法。这个MiddleMan类就是一个典型的中间对象,可以直接委托给它所依赖的对象。下面是一个去除了Middle Man的实现: obj = dependentObject response = obj.get_value() 2. 合并中间层  如果由于需要将多个对象联系起来而出现了过多的中间层,可以尝试将它们合并为一个更简单的对象。通过这种方式,可以减少代码的复杂性,从而使得代码更易于维护和扩展。  例如,下面是一个典型的Middle Man代码块: class MiddleMan:   def __init__(self, ob1, ob2):     self.ob1 = ob1     self.ob2 = ob2   def get_value(self):     return self.ob1.get_value() + self.ob2.get_value() 在上述代码中,MiddleMan类仅仅是简单地将它所依赖的两个对象(ob1和ob2)的get_value方法的返回值相加起来。这个MiddleMan类就是一个典型的中间对象,可以将它所依赖的两个对象变成一个更简单的对象,如下所示: class DependentObject:   def __init__(self, ob1, ob2):     self.ob1 = ob1     self.ob2 = ob2   def get_value(self):     return self.ob1.get_value() + self.ob2.get_value()  obj = DependentObject(ob1, ob2) response = obj.get_value() 这个方法的优势是减少了中间层的数量,使代码更易于维护和扩展。  3. 使用依赖注入  在一些情况下,Middle Man存在的原因可能是为了维护依赖关系。在这种情况下,可以使用依赖注入来减少Middle Man的数量。  例如,下面是一个典型的Middle Man代码块: class MiddleMan:   def __init__(self):     self.ob = DependentObject()   def get_value(self):     return self.ob.get_value() 在上述代码中,MiddleMan类仅仅是简单地将DependentObject的实例化和get_value方法的调用封装在一起。如果使用依赖注入,可以将所依赖的对象作为类的参数传入,如下所示: class DependentObject:   def __init__(self, ob1, ob2):     self.ob1 = ob1     self.ob2 = ob2   def get_value(self):     return self.ob1.get_value() + self.ob2.get_value()  class MiddleMan:   def __init__(self, ob1, ob2):     self.ob = DependentObject(ob1, ob2)   def get_value(self):     return self.ob.get_value()  obj1 = Object1() obj2 = Object2() middle_man = MiddleMan(obj1, obj2) response = middle_man.get_value() 这个方法的优势是解耦代码,使得代码更易于维护和扩展。  总之,Python中的Middle Man是一种在编写代码时必须避免的代码坏味道。使用上述技术,您可以轻松地减少Middle Man的数量,使代码更易于理解和维护。

解决代码坏味道middleman的评论 (共 条)

分享到微博请遵守国家法律