模板模式:1.应用场景:在一个项目的规则引擎中,一个规则引擎有一系列规则过滤,这个过滤步骤基本上是确定的,只是某些步骤在不同的场景下需要相互替换,模板方法定义了方法调用顺序,需要用到一个钩子,让子类去实现这个方法。
2.模板模式解决问题:解决了以后可拓展的问题,如果以后需要在新场景下新增规则方法,只需新增一个类,实现钩子方法即可,不需改动既有代码。
3.模板模式,场景:消息队列的消费端和生产端,将初始化生产消费端代码封装在模板中,业务只需关心消费到的数据即可,不用关心怎么消费的。
策略模式:1.曾经解决过一个场景,入参是一样的,要根据参数中type字段不同的值解决不同的业务场景,源代码中充斥着大量的if..else.新增一种业务场景,需要修改源代码,明显不符合开闭原则,解决办法:使用策略模式解决,不同的type对应一个具体的策略,新增一个场景,新增一个具体的策略类即可,不需要修改源代码了;2.用的最多的是用策略模式解决ifelse过多不好扩展的问题。3.策略模式,工厂,不同的数据依据不同的规则导入数据库 (共有的导入抽提了出来),工厂协同完成。4.我用过策略模式,用以解决同一行为的不同实现的方式,比如有的场景下去查缓存、有的去查数据库,根据场景不同,加载不同的策略。【csp_view支持不同系统的人员组织,task_list对不同的任务类型的ext格式化】
MVC: