设计模式梳理
2023-07-13 23:00:59 9 举报
AI智能生成
设计模式梳理思维导图,持续更新
作者其他创作
大纲/内容
定义:
优点
缺点
优缺点
1. 减少内存开销,(微弱的)提高性能2. 统一共享资源的访问入口,类实例只有一个好管理------------------------------------------------------其实说单例能够提高性能是扯淡的,微乎其微,单例更多的是第2点作用
1. 扩展困难,因为单例类一般都是final修饰的2. 一般单例类中会干很多事情,与单一职责冲突
应用场景
角色
类图
单例模式(Singleton Pattern)
一个类仅有一个实例,并提供一个它的全局访问点(静态方法)
1. 需要频繁的进行创建和销毁的对象2. 经常用到的类,且不需要多次创建
Singleton:单例
定义
1. 一个调用者想创建一个对象,只需要知道其名称即可;2. 扩展性高,如果想增加一个产品,就扩建一个工厂类即可;3. 屏蔽产品的具体实现,调用者只关系工厂即可。
每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。这并不是什么好事。
产品(Product)
具体产品(Concrete Products)
创建者(Creator)
具体创建者(Concrete Creators)
工厂方法(Factory Method)
定义了一个创建对象的抽象方法,由子类决定要实例化的类
1. 日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。2. 数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时。3. 设计一个连接服务器的框架,需要三个协议,\"POP3\"、\"IMAP\"、\"HTTP\",可以把这三个作为产品类,共同实现一个接口。
抽象工厂
建造者
原型模式
适配器
装饰器
门面/外观模式
代理模式
组合模式
桥接模式
享元模式
模板方法
策略模式
观察者模式
责任链
迭代器模式
状态模式
备忘录模式
命令模式
中介者模式
访问者模式
解释器模式
设计模式分析
单一职责
开闭原则
接口隔离
里式替换
依赖倒置
迪米特原则
合成复用
设计原则
1.一个类只负责一项职责,不相关的不要出现2.一个类引起其变更的原因应该有且仅有一个
对扩展开放,对修改关闭
1.客户端不应该依赖它不需要的接口2.一个类对另一个类的依赖应该建立在最小接口上3.接口尽量细分,不要在一个接口中放很多方法
1.如果S是T的子类型,则T类型的对象可以替换成S类型的对象2.所有引用父类对象的地方,都可以使用其子类型进行替代3.子类可以替换父类
1.如果开闭原则是设计大厦的蓝图,那么依赖倒置就是大厦的钢铁架构2.高层模块不应该依赖于底层模块。两个都应该依赖于抽象3.抽象不应该依赖于细节,细节应该依赖于抽象(面向接口编程)4.依赖倒置的本质就是通过抽象(接口或抽象类),来使得各个类或模块的实现彼此独立,互不影响,以此来达到模块间的松耦合!
1.要求一个对象应该对其他对象又最少的了解(好莱坞法则:不要给我打电话,我会给你打电话的)2.降低类之间的耦合度3.实际上就是一个类在创建方法和属性时要遵守的法则
1.又称为组合/聚合复用原则2.尽量使用对象组合,而不是继承来达到复用(组合优于继承)
单例模式
工厂方法
建造者模式
创建型
门面(外观)模式
结构型
行为型
设计模式分类
23种设计模式
0 条评论
回复 删除
下一页