1.设计模式的概念
一套被反复使用,多数人知晓的,经过分类的代码设计经验的总结
2.设计模式遵循的原则
1.开闭原则 对拓展开放 对修改关闭(接口-多个实现类)
2.里氏替换原则 所有基类可以出现的位置 子类一定可以出现
3.依赖倒转原则 编程面向接口设计 而不是面向实现类
4.接口隔离原则 使用多个隔离的接口比单个接口要好
5.迪米特法则(最少知道原则)
6.合成复用法则(尽量采用合成的方式 而不是继承的方式)
3.设计模式的分类
创建型:当我们要创建某个类或者某些类的对象的时候 例如:工厂模式 单例模式
结构型:类于类之间的依赖关系的处理方案 例如:外观模式 代理模式
行为型:分配不同对象的责任以确定程序的边界 例如:观察者模式 责任链模式
设计模式共计23种 其中6种比较有代表性的
详解:
工厂模式:通过一个类创建另外一个接口或者类的对象
抽象工厂模式:使用接口或者抽象类来定义工厂
//案例:宠物对象创建过程
单例模式(Singleton):单例模式确保一个类的对象在程序运行过程中只有一个
饿汉式:私有化构造函数 提供静态方法返回对象
懒汉式:私有化构造函数 提供静态方法返回对象 并不会在最开始就创建对象 当有程序调用方法时才开始创建对象
外观模式:解决类与类之间的依赖关系
案例电脑启动
代理模式:通过一个代理类对象在完成核心任务的同时完成重复性较高的次要任务
//执行数据库操作之前需要打开事务
//然后才能执行数据库的增删改查
//提交事务
观察者模式:当一个对象发生改变时, 其他依赖该对象的方法也要同步更新
责任链模式:很多对象由一个对象连接另外一个对象组成的一条链
这条链上的每个对象可以处理一个复杂业务的某一部分
使用责任链模式可以很好的组织这个复杂业务的运行结构
责任链模式下分为抽象处理者角色和实际处理者角色
例如:一个员工向领导请假的流程
此案例中
能够批假的角色需要抽象出来(Leader)
实际处理者就是Leader下的所有实际领导人GroupLeader DeptManager AssistantManager Manager