【C++设计模式】设计模式总体原则

 

//设计模式帮助我们实现可复用的组件,所谓"可复用",就是指将类实现为"组件",当一个组件发生改变时,不需要对其他组件进行修改或是只需要很小的修改即可应付。

//设计模式分为三大类:

//创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
//结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
//行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

//设计模式的六大原则:

//总原则-开闭原则
//对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。

//1)单一职责原则
//不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。

//2)里氏替换原则
//无论在父类类型的变量中保存哪个子类的实例,程序都可以正常工作,这种原则被称为里氏替换原则。里氏替换原则是继承复用的基石,只有当子类可以替换基类,软件单位的功能不受到影响时,基类才能真正被复用。

//3)依赖倒转原则
//面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类上层的抽象接口交互,优先使用抽象类和接口来编程。

//4)接口隔离原则
//接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

//5)迪米特法则
//一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

//6)合成复用原则
//尽量优先使用组合或聚合的方式,而不是使用继承。

//学习某种设计模式要从"角色"的角度来理解各个类和接口在模式中扮演什么样的角色,思考和理解这些"角色"的交互可以解决哪些问题,不要只是阅读书中的案例死记硬背。

 

【C++设计模式】单例模式

【C++设计模式】简单工厂和工厂方法

【C++设计模式】抽象工厂模式

【C++设计模式】建造者模式

【C++设计模式】原型模式

【C++设计模式】模板方法

【C++设计模式】桥接模式

【C++设计模式】迭代器模式

【C++设计模式】适配器模式

【C++设计模式】观察者模式

【C++设计模式】享元模式

【C++设计模式】责任链模式

【C++设计模式】代理模式

【C++设计模式】策略模式

【C++设计模式】外观模式

【C++设计模式】状态模式

【C++设计模式】命令模式

【C++设计模式】装饰者模式

【C++设计模式】备忘录模式

【C++设计模式】组合模式

【C++设计模式】中介者模式

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计模式通常遵循以下几种原则: 1. 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个引起变化的原因。换句话说,一个类应该只负责一项职责。 2. 开闭原则(Open-Closed Principle,OCP):软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。这意味着当需要添加新功能时,应该通过扩展已有代码来实现,而不是修改已有代码。 3. 里氏替换原则(Liskov Substitution Principle,LSP):子类应该能够替换掉父类并且不会产生任何错误或异常。换句话说,子类应该能够以父类的形式出现,而不引起任何问题。 4. 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖低层模块,两者都应该依赖于抽象。抽象不应该依赖于具体实现细节,具体实现细节应该依赖于抽象。 5. 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。 6. 迪米特法则(Law of Demeter,LoD):一个对象应该对其他对象有尽可能少的了解。一个类应该只与其直接合作的类进行通信,而不应该了解一大堆其他的类。 这些原则帮助开发人员设计出可维护、可扩展、松耦合的软件系统,提高代码的质量和可复用性。它们被广泛应用于设计模式中,帮助解决各种软件开发中常见的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值