设计原则
qq_25097431
这个作者很懒,什么都没留下…
展开
-
1.1软件设计原则——开闭原则
开闭原则:开闭原则,对于扩展是开放的,对于修改是关闭。原则:(1)通过接口或抽象类约束扩展,对扩展进行边界限定;(2)参数类型、引用对象尽量使用接口或者抽象类,而不是实现类;(3)抽象层尽量保持稳定,一旦确定就不允许修改;(4)将相同的变化封装在一个接口或抽象类中;(5)将不同的变化封装到不同的接口或抽象类中。//书籍接口interface IBook { ...转载 2019-05-31 21:53:04 · 110 阅读 · 0 评论 -
1.1软件设计原则——依赖倒置原则(DIP)
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接...转载 2019-06-02 21:49:12 · 123 阅读 · 0 评论 -
1.1软件设计原则——单一职责:Single Responsibility Principle(SRP)
它规定一个类只有一个发生变化的原因。如果多余一个导致类变更的原因,则违反了SRP。问题来源:分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样当修改T1时,不会使职责P2发生故障风险,同理当修改T2时,也不会使P1发生故障。但是现实中,不管是新手,还是资深程序员,经常会违反,这不仅仅是技术的问题,还有职责扩散,就是因为某种原因,职责P被分化成粒度更细的职责P1...转载 2019-06-02 23:53:03 · 123 阅读 · 0 评论 -
1.1软件设计原则——接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。//定义脸蛋、身材美女接口interface IGoodBodyGirl { void goodLooking(); void niceFigure();}//定义气质美女接口interface IGreatTemperamentGirl { void greatT...转载 2019-06-03 16:29:25 · 100 阅读 · 0 评论 -
1.1软件设计原则——里氏替换原则
定义:里氏替换原则,所有引用基类的地方必须能透明地使用其子类的对象。//定义手枪抽象类public abstract class AbstractGun { abstract void shoot();}//定义玩具枪抽象类public abstract class AbstractToy { abstract void shoot();}//实现手枪...转载 2019-06-03 22:38:36 · 166 阅读 · 0 评论 -
1.1软件设计原则——合成复用原则
定义:合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现...转载 2019-06-04 10:36:57 · 312 阅读 · 0 评论