设计模式(阅读扩展代码)

设计模式----整洁的房间,好动的猫

(看源码)解决问题的特定方法
解决既有稳定点,又有变化点的问题(全是稳定点写一次就可以,全是变化点--游戏开发、脚本语言不需要编译,热更新数据到服务器)
修改少量代码,解决变化的问题
消除大量的if-else语句

设计模式基础

面向对象的思想:
封装、继承、多态(动态多态用的最多)
虚函数的使用:早绑定和晚绑定(一个基类的指针指向很多的派生类)

设计原则

依赖倒置:所有的实现都依赖于抽象接口,程序员实现接口,客户调用接口
开闭:对修改关闭对扩展开放
单一职责:类的职责越少越好
接口隔离:类与类共用一个接口,容器存类接口、依赖注入(两个类通过一个接口,函数参数实现,参数对应不同的接口,实现基类稳定)
里式替换:虚函数复写要实现父类的所有功能包括特殊功能
组合优于继承:
最小知道原则:

学习设计模式:分析稳定点与变化点

稳定点---->抽象 变化点------>继承和组合

设计模式分类

模板方法:固定表演流程,表演节目可替换更新

稳定点:算法框架 变化点:子流程
类封装:权限设定
实现:子流程作为虚函数开放
基类虚函数订表演节目,子类继承具体实现表演节目(一个子类表示一个版本的迭代,实现所有基类定义的节目)
(基类不能用public,因为用户不可访问,但是又要子类访问,protected可以实现)
用户调用:一个基类的指针

观察者模式:气象站实时更新数据,所有接入的终端同步显示变化的数据

一对多("多"增加,"多"减少,同步)
稳定点:一 变化点:"多"增加,"多"减少
实现:list容器包含终端数目,遍历通知变化
基类显示定义虚函数,子类设备里面具体实现,遍历显示
基类定义加入离开函数和显示函数开放给用户即可

策略模式:促销活动,加大促销力度,提升规格

不同活动不同的规定,但是都是促销活动
稳定点:调用关系 变换点:不同的算法适配参数,不同参数变化
实现:基类通过函数的参数调用不同的算法,实现基类稳定,只要修改对应的子类即可,传参同步

posted @   流光最璀璨i  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示