《架构师》第二周命题作业
作业一、
依赖倒置原则:
1、高层模块不应该依赖于底层模块,二者都应该依赖于抽象。
2、抽象不应该依赖于细节,细节应该依赖于抽象。
3、依赖倒置原则是创建可重用框架的核心。
著名的 Hollywood 原则:
Don't call us, we'll call you.
在依赖倒置原则里,框架负责高层模块和抽象的定义,用户根据抽象定义实现功能。当用户模块部署后,用户模块应当等待被高层模块通过抽象定义执行调用。这种逻辑就像是 Hollywood 的原则,因此依赖倒置原则有时也会被称为好莱坞原则。
作业二、
联盟链 Hyperledger Fabric 的 Chaincode 框架
在 Hyperledger Fabric 中,我们可以定义自己的 chaincode 提交给 Fabric。chaincode 的实例无需关心自己何时被调用,它只需根据约定要实现 invoke 函数。Fabric 联盟链会在用户执行合约时调用到 chaincode。
作为高层模块的 Hyperledger Fabric 联盟链基于抽象的 Invoke 函数的约定,知道如何调用 chaincode 实例。
作为低层模块的 chaincode 实例代码依赖 Invoke 函数的约定,被动等待 Fabric 调用。
二者均依赖与 Invoke 函数的约定。
作业三、
优化方案:
为了防止应用程序或错误调用到 reBuild 方法或者远程系统调用执行了不应该做的操作。这里基于接口分离的原则,把原本已经在 cache 中实现的方法分离到 ICache 和 Rebuilder 接口中。
应用程序依赖 ICache 接口。
远程系统调用依赖 ReBuilder 接口。
类图:
版权声明: 本文为 InfoQ 作者【黑】的原创文章。
原文链接:【http://xie.infoq.cn/article/a280b1c85fb3b0255cb91f15e】。文章转载请联系作者。
评论