Python设计模式(2)-策略模式

# 策略模式和简单工厂模式相比,少了使用switch case 做判断,然后去实例化相应的
# 对象,比简单工厂模式更灵活。 它们代码的区别就在于此处使用了抽象类代替工厂类


# coding=utf-8
class DbManager:
def __init__(self):
pass

def operate_db(self):
pass


class DbInsert(DbManager):
def operate_db(self):
print '插入操作'


class DbDel(DbManager):
def operate_db(self):
print '删除操作'


class DbUpdate(DbManager):
def operate_db(self):
print '更新操作'


class DbQuery(DbManager):
def operate_db(self):
print '查询操作'


class UnDef(DbManager):
def operate_db(self):
print '未实现'
return 0


class Strategy:
def __init__(self, strategy):
self.stra = strategy

def operate_db(self):
return self.stra.operate_db()


if __name__ == "__main__":
strategy = Strategy(DbDel())

print strategy.operate_db()
原文地址:https://www.cnblogs.com/zijiyanxi/p/5273140.html