关于编程的比喻

分层和模块化

一件事情给多个人来分解完成。模块化是让不同的人来完成不同的工作,分层是让一个人完成一件事情的不同阶段。模块分多了,就好比人员过多,需要精简机构。分层导致了很多的“重复”代码,用比喻来说就是同一件事情要让多个人来完成其不同阶段,必须“重复”的让每个人认识清楚那个东西在这个阶段是什么。由于同一件东西在不同阶段有可能很类似,所以会觉得重复。

AOP

平时,都是我们要做什么事情的时候,去找做那件事情的人,然后要求他做什么,这个就是普通的办事规则。但是有的时候,比如你去饭店吃饭,你坐下了就会有服务员过来倒水,这个主动提供服务,就是AOP。因为这种服务常见,有很强的重复性,pointcut非常明显。而基于属性编程一个很好的比喻就是,你去一个地方办企业,你只要给自己贴上一个标签,投资办企,然后各种服务机构(也可能是剥削机构)自然就会来找你。
原文地址:https://www.cnblogs.com/taowen/p/12232.html