1、常见设计模式
1.1 工厂模式
用工厂方法或类来生成对象,而不是在代码中直接 new Class()
,替换new Class()
这种写法
好处是如果生成对象的方式发生改变,比如构造参数改变,直接修改工厂方法就行了
工厂方法针对每一种产品提供一个工厂类,通过不同的工厂实例来创建不同的产品实例,在同一等级结构中,支持增加任意产品。
1.2 单例模式
保证一个类仅有一个实例,并且提供一个访问它的全局访问点,使某个类的对象只允许创建一个
比如数据库类,数据库的连接只需要连接一次
1.3 注册模式
解决全局变量共享问题和交换对象 。可以理解成用一个类来存放全局变量
1.4 适配器模式
可以将截然不同的函数接口封装成统一的 API
比如多种数据库的连接方法不同,通过这个模式封装成统一的 API
1.5 策略模式
将一组特定的行为和算法封装成类,以适应某些特定的上下文环境
1.6 数据对象映射模式
将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作
例子:ORM
1.7 观察者模式
当一个对象状态发生改变时,依赖它的对象全不会收到通知,并自动更新
场景:一个事件发生后,要执行一连串的更新操作,传统的编程方式,就是在事件的代码之后直接加入处理逻辑当更新的逻辑增多之后,代码变得难以维护,这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件的主体代码
观察者模式实现了低耦合、非侵入式的通知与更新机制