什么是设计模式
-
众所周知,模式一般指的是在内容中会有边界(Border)或有比较固定内容(Fixed Content)的指导性东西。而设计模式则是更高层次的解决方案,它要求个人在碰到问题时,不要过多关注问题的细节,将问题泛化和抽象化剥离出问题的核心,进而匹配看是否符合众多设计模式的使用场景而选用。所以设计模式描述的是:在各种情况下要选择什么样的方案来解决问题。
设计模式的目的在于提高代码可重用性和可靠性,并使代码条理清晰、易于理解、易于维护。
那么为什么要提倡设计模式呢?Martin(Uncle Bob)提出了五项原则,这五个原则被称为S.O.L.I.D原则:
SRP - 单一职责:它强调的是引起类变化的因素永远不要超过一个。这就意味着在设计需要的类时,需要考虑使得每个类被设计出来都只有一个目的。但是这并不意味着每个类只能有一个方法。
OCP - 开闭原则:这个原则则强调的是:一个软件实体应该对扩展保持开放,对修改保持关闭状态。即当每次发生变化时,要通过添加新的代码来增强现有类型的行为,而不是修改原有的代码。它所倡导的是你需要一些额外功能,你应该扩展这个类而不是修改它。
LSP - 里氏替换原则:此原则声明所有引用基类的地方必须能使用其子类的对象。也就是说任何基类可以被调用的地方,子类也一定可以被调用。
ISP - 接口分离原则:使用多个专门的接口比使用单一的总接口要好。也就是说不要让一个单一的接口承担过多的职责,而应把每个职责分离到多个专门的接口中,进行接口分离。
DIP - 依赖倒置原则:依赖抽象,不依赖具体实现,也就是高层和底层的耦合关系通过抽象(接口)来实现。这也是我们提倡的面向接口编程,与之相关的概念是DI(依赖注入)和IoC(控制反转)。该原则规定了在类之间存在依赖关系的情况下,应使用抽象(如接口)来构建它们的耦合关系,而不是直接引用类。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏