Web Analytics
yangyang

码农兼一个普普通通小青年

All Posts in 2014.4


从循环引用谈依赖倒置原则

在业务开发中,通常会按照业务或者逻辑将项目分成好几个工程文件以方便重用和模块化,有时候我们分开的两个项目可能存在相互引用的情况,举个例子,比如有两个系统,订单系统和产品系统,订单系统需要从产品系统中了解当前产品是否有剩余。产品系统需要从订单系统中了解产品的销售情况,这时候就存在相互引用的情况。 循环引用在Visual Studio中是编译不通过的。出现循环引用很可能是设计上抽象不够导致的,根据设计模式的依赖倒置-高层模块不应该依赖于低层模块。二者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象这一原则,可以来解决循环引用。 在一些项目中,使用一些依赖注入的框架如SPRING.net,CASTLE可以在一定程度上避免循环引用。 Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需 …


浅谈模板方法模式

在很多时候,我们在写代码的时候总是会遇到一些相同或者类似的处理流程和步骤,就拿一般的函数编写来说,在处理之前一般会进行参数有效性验证,然后可能会对参数进行预处理,最后在执行业务操作。 这种情况通常会出现在一类业务,比如订单处理系统中,就有订单创建,订单修改等操作,就会出现的这些类似的情况。 如果每个都这样写的话,会发现整个流程比较重复和冗余。比如: class SomeProcessService { ResponseBody SomeProcess (RequestBody request) { ValidateParameter(); PreprocessingParameter(); DoSomething(); } } class …

template method Design Pattern