版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ccnuacmhdu/article/details/82958009
按照面向对象设计原则设计软件,目标是提高软件的可维护性和可复用性。而设计模式就是在工程实践中总结出来的一套符合面向对象设计原则的软件开发模式。
七大面向对象设计原则
设计原则名称 | 设计原则简介 | 备注 |
---|---|---|
单一职责原则(Single Responsibility Principle, SRP) | 类的职责单一 | 是实现高内聚、低耦合的指导方针 |
开闭原则(Open-Closed Principle,,OCP) | 软件实体对扩展是开放的,对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能 | 可复用设计的第一块基石 |
里氏替换原则(Liskov Substitution Principle, LSP) | 可接受基类对象的地方必然可接受子类对象 | 如果某方法属于子类且父类中无相应声明,那么无法通过父类对象调用该方法。尽量把父类设计为抽象类或接口,让子类去实现父类中声明的方法 |
依赖倒转原则(Dependency Inversion Principle,DIP) | 针对接口(抽象层)编程,不要针对实现编程 | |
接口隔离原则(Interface Segregation Principle,ISP) | 一旦一个接口太大,就把它分割成小接口,使该接口的客户端只知道与之相关的方法即可 | |
合成复用原则(Composite Reuse Principle,CRP) | 多使用组合、聚合关联关系,少使用继承关系 | |
迪米特法则(Law of Demeter,LoD) | 一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当发生直接作用,而是通过引入一个第三者发生间接交互 |
GoF
《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)"。
GoF的这部经典著作描述了23种设计模式。
创建型模式 | 结构型模式 | 行为型模式 |
---|---|---|
工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式 | 适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式 | 解释器模式、模板方法模式、职责链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式 |