摘要:
一、DIP简介(DIP--Dependency InversionPrinciple):1、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。2、抽象不应该依赖于细节,细节应该依赖于抽象。高层模块包含了一个应该程序中的重要的策略选择和业务模型,正是这些高层模块才使得其所有的应用程序区别于其他,如果高层依赖于低层,那么对低层模块的改动就会直接影响到高层模块,从而迫使它们依次做出改动。二、举例说明:反面例子:缺点:耦合太紧密,Light发生变化将影响ToggleSwitch。解决办法一:将Light作成Abstract,然后具体类继承自Light。优点:ToggleSwitch依赖于抽象类Lig 阅读全文
posted @ 2013-08-18 14:15
幕三少
阅读(409)
评论(0)
推荐(0)
摘要:
一、OCP简介(OCP--Open-Closed Principle):Software entities(classes,modules,functions,etc.) should be open for extension, but closed for modification。软件实体应当对扩展开放,对修改关闭,即软件实体应当在不修改(在.Net当中可能通过代理模式来达到这个目的)的前提下扩展。Open for extension:当新需求出现的时候,可以通过扩展现有模型达到目的。 Close for modification:对已有的二进制代码,如dll,jar等,则不允许做任.. 阅读全文
posted @ 2013-08-18 14:08
幕三少
阅读(496)
评论(0)
推荐(0)
摘要:
一、SRP简介(SRP--Single-Responsibility Principle):就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变化。“就像一个人身兼数职,而这些事情相互关联不大,,甚至有冲突,那他就无法很好的解决这些职责,应该分到不同的人身上去做才对。”二、举例说明:违反SRP原则代码:modem接口明显具有两个职责:连接管理和 阅读全文
posted @ 2013-08-18 14:04
幕三少
阅读(489)
评论(0)
推荐(0)
摘要:
这几天重新看了一遍《大话设计模式》,发现果然有不同的感悟,而且自己也上网找了《敏捷软件开发—原则、模式与实践》一书来看,那本书的序言中有一段话我觉得很有道理:“美的东西比丑的东西创建起来更廉价,也更快捷。”设计一个软件不关要追求代码的优雅问题,更关乎生产成本等。技术大师们在对软件架构的研究中经历了很长时间的摸索,从面向过程到面向对象,从设计原则到设计模式,总结了许多设计上的经典法则,而我们就只是站在巨人的肩膀上眺望远方而已。 从《大话设计模式》中,大家一定会发现其中的经典的23个模式背后,其实都遵循着一些基本的原则的。而设计原则又由设计模式来实现,这就是二者相辅相成的关系,所以了解原则对于了. 阅读全文
posted @ 2013-08-18 11:37
幕三少
阅读(1037)
评论(14)
推荐(1)
浙公网安备 33010602011771号