架构设计
神童i
百花发时我不发我若发时都吓杀
要与西风战一场遍身穿就黄金甲
展开
-
C++ API设计
1. 隐藏实现细节一般来说,声明放在.h文件中,定义放在.cpp文件中,.h文件中也可以给出定义,如下class A { public void f() { std::cout << "In f" << std::endl; }};但是很不建议这么写,因为这种写法隐式地要求编译器在调用这个函数的地方,内联此函数,不仅暴露实现细节还将代码内联到客户程序中。...原创 2019-11-22 11:13:42 · 1797 阅读 · 0 评论 -
四种代码结构--纸上谈兵04
四种代码结构:按层封装,按功能封装,按组件封装,端口与适配器实现客户查看订单状态的用例,按上面四种结构进行设计如下:按层封装:在这种简单的设计中,把代码分成三层:Web, 业务逻辑,持久化层,每一层都只能对下层有依赖关系。客户发出查询请求,Web层负责接受并处理Web请求,并把请求交给下面的业务逻辑来处理,最后访问持久层来获取订单的信息。OrderController: 负责...原创 2019-10-28 22:49:28 · 8691 阅读 · 0 评论 -
整洁架构--纸上谈兵03
一个架构设计的理念如下图:外层依赖内层,内层不应该依赖外层。名词解释: 1. 业务实体 就是操作关键数据的业务逻辑(不一定非得是类,也可以是模块),只包含业务逻辑,不包含其他东西,可以在任何其他系统中提供本业务逻辑所描述的功能。 上图中的Client客户类就是一个业务实体,其中包含了关键数据(rate, money等),以及关键的业务逻辑(save_...原创 2019-10-26 17:37:57 · 769 阅读 · 0 评论 -
组件构建--纸上谈兵02
组件是软件部署的单元,设计良好的组件可独立部署并可独立被开发。1、组件聚合 --REP原则:复用/发布原则(不是很理解) 软件复用的最小粒度等同于其发布粒度。 解释:组件中的类与模块必须是彼此紧密相关的,一个组件不能由一组毫无关联的类和模块组成,它们应该有一个共同的主题和方向。一个组件中的类与模块还应该是可以同时发布的。 ...原创 2019-10-25 17:38:19 · 832 阅读 · 0 评论 -
依赖反转原则示例--纸上谈兵01
DIP(依赖倒置原则)高层模块不应该依赖于低层模块,两者都应该依赖抽象。抽象即可理解为接口。每次修改接口的时候,一定会修改对应的实现,但是修改实现的时候,很少需要修改对应的接口。也就是说,接口比实现稳定的多。所以说想要在架构上追求稳定,就必须多使用稳定的抽象接口,少依赖多变的实现。依赖: 如果A类中使用了B类的实例,那么可以说A类依赖于B类。 比如: 如何在项目...原创 2019-10-23 18:02:29 · 979 阅读 · 0 评论