如何解释松耦合和信息隐藏给新程序员?我有一个程序员,我为其编写设计,但似乎无法掌握松散耦合和信息隐藏的概念.
我通过函数将所有内容很好地分解为类来编写设计(数据访问是独立的,一个用于请求的类,一个控制器,总共约5个类).他们回来时采用了改进的设计,其中一半的类继承自另一半(并且没有"is-a"关系),以及许多公共变量.
我怎样才能理解保持分离的想法使维护更容易?
Mau*_*gan 16
问题是你的期望,而不是开发人员缺乏技能.你谈论松耦合和信息隐藏,好像这些是简单的事实或机械技术 - 它们不是.软件开发是一种技术,在技术上变得更好的唯一方法是实践它并缓慢地逐步改进.
您正在寻找捷径.您希望开发人员体验"ahah!" 一瞬间突然看到你设计中的智慧.我说,不要屏住呼吸.
采纳导师的心态.如果你想让他提高自己的设计技巧,不要"给他"设计,让他去设计吧!然后和他一起回顾设计.这将给予他经验,更深刻的主人翁意识,并且在他实施膝盖深度之前更愿意倾听您的建议.
抛开 - 我注意到人们一直在寻找这些捷径,而不是使用抽象技能,而不是更多的"身体"技能.以网球为例.如果你是一名网球教练而且一名新球员长期不停地打击他的前锋,你不会只向他展示一段关于罗杰·费德勒正手的YouTube视频,并期望他"得到它".当你学习感觉并在不同场景中使用它时,一个伟大的正手需要多年的经验 - 它不是你的肌肉学习,它是你的大脑.它与软件设计没有什么不同.你一遍又一遍地擅长这一点.您慢慢从错误中吸取教训,并更好地了解每个设计决策的后果.
没有什么比得上物理类比了.走出你的车,指出一切复杂,炎热和危险的东西是如何与脆弱的人隔离.坐在驾驶座上并指出一些重要的仪表; 例如,冷却液温度,转速计和速度计.注意仪表是如何非常相似的:它们都采用标量值(从某处)并通过将针移动到最小值和最大值之间的位置来表示它.
但是,如果你考虑测量的是什么,维持这种隔离(即松耦合或信息隐藏)的强烈动机变得更加明显.
"您想如何测量冷却液温度?通过观察仪表或用手指插入接近沸腾的液体?"
"你想怎样测量发动机的转速?通过观察一个量规或者让一个数千转的RPM曲轴从你的骨头上撕下来,当你试图用手估算它时?"
"你想怎么测量汽车的速度?当你在高速公路上咆哮时,通过观察一个仪表或将脚拖到地上?"
从那里开始,您可以建立在"您的冷却液温度计是一种规格.它不是沸腾的液体"等概念的基础上,以及更复杂的概念.