学好设计模式的思维导图

 

设计模式
    什么是设计模式?
        通俗版
            解决一再发生的问题的通用方案
        专业版
            是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
    类图和语法差不多,如何快速识别代码属于哪个设计模式?
        情景
        问题-重复性问题-普遍性问题
        解决方案
            力的平衡:目标;约束
        意图;动机
        类图
        角色-协作
        描述-模式名称-共享词汇
        关联模式
        使用场景
        优缺点
        模式类目-创建-结构-行为
        模式使用最佳实践
    设计模式使用最佳实践
        保持简单,避免过度设计
        不要为了用而用模式
千万不要认为:如果没有使用模式解决某个问题,就不是经验丰富的开发人员
        确信系统未来会发生改变和+有实际的需要再使用模式
如果只是假想的改变,不要使用模式
        如果现在不需要模式,就别用
        重构的时间大就是模式的时间
        删除不需要的设计模式
        不用设计模式不代表不能实现功能,设计模式容易实现更有弹性的设计
    学习设计模式的重要性
        开发人员之间共享词汇
            模式背后的质量、特性、约束
            更少的词汇做充分沟通
            呆在设计圈子更久
            开发团队快速充电
            帮助初级开发人员迅速成长
        阅读开源项目源码理解更容易
        面试和考试频繁遇见
        指导普通开发工程师
        设计组件库和开发优秀的功能代码
        架构师必备技能
    设计目标
        4大目标
            维护性
            扩展性
            复用性
            灵活性
        其它
            有弹性
            健壮性/鲁棒性
    面向对象
        4大特性
            抽象
            封装
            继承
            多态
        接口与抽象类的区别
            接口和抽象类的区别.txt
        面向对象 VS 面向过程
            功能分解;隐错;责任
            思考方式
                概念;规约;实现
        贫血型OO VS 充血型OO
    设计模式最简UML
        类图
            类名、成员、方法、访问权限
            B派生自A,A泛化了B
            关联、聚合/聚集、组合/合成
            依赖
            关系强弱排序:组合>聚合>关联>依赖
            注释符
        交互图-时序图
            对象:类名
            时间轴、生命线、水平线调用
    设计原则12个
        封装变化-分开变化和不会变化的部分
        高内聚、松耦合/低耦合、有弹性的设计
        单一职责
            引起变化的原因,只有1个
        开闭原则
            对扩展开放,对修改关闭
        依赖倒置原则/针对接口编程/好莱坞原则
        里氏替换原则
            父类可以代替子类
        合成/聚合复用原则
            组合/委托优于继承
        迪米特法则
/得墨忒耳法则
/最少知识原则
            最小知识,朋友越少越好;降低成员访问权限
        接口隔离原则
            接口的方法高内聚
        DRY原则
            Don’t Repeat Yourself
        保持简单原则
        不要过度设计原则
    阅读开源项目源码必须掌握的设计模式
        工厂模式
模板模式
策略模式
代理模式
适配器
装饰模式
职责链模式
    23种设计模式Gof
        创建型6
解耦客户与需要实例化的对象
            单例模式
            简单工厂模式/静态工厂模式(不属于23种Gof设计模式)
            工厂模式
            抽象工厂模式
            建造者模式/生成器模式
            原型模式
        结构型7
把类或对象组合到更大的结构中
            代理模式
            适配器模式
            装饰着模式
            门面模式/外观模式
            桥接模式
            组合模式
            享元模式
        行为型11
类和对象如何交互及分配职责
            策略模式
            观察者模式/发布-订阅模式
            模板方法模式
            职责链模式
            迭代器模式
            命令模式
            状态模式
            访问者模式
            备忘录模式
            解释器模式
            中介者模式
    设计模式组合
        MVC模式=4个模式组合
            观察者-模型是被观察者,共享多视图
            策略模式-控制器是视图的行为
            组合模式-视图-组合节点-叶节点
            适配器模式-视图-模型-Android-DataAdapter
        泛型+反射+工厂模式
        模板方法模式+策略模式
        字符串配置+反射+工厂模式
        工厂模式+代理模式
        工厂模式+策略模式
        装饰者模式+访问者模式
        迭代器模式+组合模式
        命令模式+备忘录模式
    书单
        大话设计模式.pdf
        图解设计模式_结城浩著_杨文轩译_2017.pdf
        Head First设计模式_2007.pdf
        设计模式之美_王铮.极客时间
        设计模式_GoF.pdf
        Java与模式_阎宏.pdf
        Java设计模式_Steven John_张逸译_第2版_2012.pdf
        设计模式解析_AlanShalloway_第2版.pdf
        重构与模式_Joshua Kerievsky.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值