我对博客的认知是,总结自己对于某一类知识的的阶段性总结;设计模式学习了有段时间了,写下来作为总结;
我学习设计模式的思路:1:以UML类图为基础 ;
2:对于他们的适用场景及优劣分析;
3:进行对比记忆和理解;例如:工厂模式,抽象工厂模式,建造者模式,他们可以都是创造型模式,区别在哪;再例如: 装饰器模式和代理模式
关于设计模式的六大设计原则
1:单一职责原则:
对于一个类,引起它变化的原因只有一个;(实现类的职责单一)
2:开放-封闭原则:
对扩展开放,对修改关闭;
3:里式替换原则:
子类必须能替换父类,父类功能不受影响,实现代码的可扩展;(继承)
4:依赖倒置原则:
抽象不依赖于细节,细节依赖于抽象;高层模块不依赖底层模块,两个都依赖于抽象;(面向接口编程)
5:迪米特原则:
降低类的之间的耦合,强调类之间的松耦合,类对自己依赖的类知道的越少越好(门面模式,中间模式)
6:接口隔离原则:
客户端不应该依赖它不需要的接口,一个类对另一个类的依赖,应建立在最小接口上;
设计模式共有23中,分为三大类
创建型模式:顾名思义就是创建对象的模式,他抽象了实例化的过程;
类创建型:工厂模式、单例模式;
对象创建模式:抽象工厂模式、建造者模式、原型模式;
创建型模式共五种:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式
共同点:1:具体类信息进行封装和隐藏,只暴露关于这些对象的抽象意义的接口;
结构型模式:怎么组装现有的类,设计他们的交互方式,从而达到一定功能的目的,结构型包容了很多问题的解决。例如:扩展性(外观、代理、装饰) 封装(适配器、桥接)
结构型模式共七种:适配器模式、装饰器模式‘、代理模式、外观模式、桥接模式、组合模式、享元模式
行为型模式:对不同的对象之间划分责任和算法的抽象化,不仅仅关注类和对象的结构,而且重点关注他们之间的相互作用;通过行为型模式可以清晰换分类与对象的职责,并研究系统在运行时实例对象之间的交互,系统运行时,对像并不是孤立的,他们可以相互通讯和协作,处理某些复杂功能,一个类在运行是会影响其他类;
行为型模式共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式;
还有两类:并发型模式、线程池模式;