如何为六个微信小程序应用搭建并使用云开发功能?
摘要:网站建设包六个,微信小程序云开发教程,wordpress功能菜单怎么设置,建站之星做网站目录 前言如何学习设计模式?设计模式基础设计原则 一. 创建型设计模式1. 模板方法2. 观察者模式3. 策略模式 二.
网站建设包六个,微信小程序云开发教程,wordpress功能菜单怎么设置,建站之星做网站目录 前言如何学习设计模式#xff1f;设计模式基础设计原则 一. 创建型设计模式1. 模板方法2. 观察者模式3. 策略模式 二. 结构型设计模式1. 单例模式2. 工厂模式3. 抽象工厂4. 责任链5. 装饰器6. 组合模式 前言
如何学习设计模式#xff1f;
明确目的
在现有的设计模式上… 目录 前言如何学习设计模式设计模式基础设计原则 一. 创建型设计模式1. 模板方法2. 观察者模式3. 策略模式 二. 结构型设计模式1. 单例模式2. 工厂模式3. 抽象工厂4. 责任链5. 装饰器6. 组合模式 前言
如何学习设计模式
明确目的
在现有的设计模式上拓展代码在做功能抽象时如何选择设计模式
学习步骤由理解到使用
该设计模式解决了什么问题稳定点、变化点该设计模式的代码结构是什么该设计模式符合哪些设计原则该设计模式上如何拓展代码该设计模式有哪些典型应用场景
设计模式基础
设计模式是指在软件开发过程中经过验证的用于在特定环境下重复出现的特定问题的解决方案设计模式是在满足设计原则后慢慢迭代出来的具体需求既有稳定点又有变化点才可以使用设计模式期望修改少量的代码就可以适应需求的变化软件开发好比在一个房间里有一只好动的猫如何使房间保持整洁把猫关在笼子里使用设计模式让变化点只能在有限的范围内变化设计模式是与语言的特点有关的就C而言面向对象的思想封装隐藏实现细节实现模块化、继承无需修改原有类的情况下通过继承实现对功能的扩展、多态函数重载、虚函数的重写…
设计原则
依赖倒置高层模块不应该依赖底层模块两者都应该依赖抽象抽象不应该依赖具体实现具体实现应该依赖于抽象。开放封闭一个类应该对拓展组合和继承开放对修改关闭。封装、多态面向接口不将变量类型声明为某个特定的类而是声明为某个接口使用者无需知道对象的具体类型只需要知道对象所具有的接口减少系统中各部分的依赖关系从而实现“高内聚松耦合”的类型设计方案封装封装变化点将稳定点和变化点分离扩展修改变化点让稳定点和变化点的实现层次分离封装、多态单一职责就一个类和接口而言应该仅有一个引起它变化的原因封装里氏替换任何基类可以出现的地方子类一定可以出现子类必须完全实现父类的抽象方法但不能覆盖父类的非抽象方法多态接口隔离类封装权限限定词来实现类与类的依赖通过接口进行联系依赖注入。组合优于继承最小知道原则不对外暴露不需要的接口 。封装
设计原则之间有概念重复的部分侧重点又有所不同符合设计原则的代码只需要修改少量的代码就可以演变成设计模式因此在开发时应参考设计原则进行代码结构设计
一. 创建型设计模式
1. 模板方法
定义一个操作中算法的骨架而将一些步骤延迟到子类中基类中有骨架流程接口所有子流程对子类开放并且是虚函数稳定点算法的骨架变化点子流程需要变化Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤最常用的设计模式子类可以复写父类子流程使父类的骨架流程丰富反向控制流程的经典应用父类protected保护子类需要复写的子流程这样子类的子流程只能父类来调用
2. 观察者模式
定义对象间的一种一对多变化的依赖关系以便当一个对象的状态发生改变时所有依赖它的对象都得到通知并自动更新稳定点“一”对“多”的依赖关系“一”变化“多”跟着变化变化点“多”的数量增加或减少观察者模式使得我们可以独立地改变目标与观察者从而使二者之间的关系松耦合观察者自己决定是否订阅通知目标对象并不关注谁订阅了观察者不依赖通知顺序目标对象也不知道通知顺序常用在基于事件的UI框架中也是MVC的组成部分常用在分布式系统中、actor框架中
3. 策略模式
定义一系列算法把它们一个个封装起来并且它们可互相替换。
