设计模式总结

工厂模式

工厂方法或类生成对象,而不是在代码中直接new

单例模式

定义某个类的对象仅允许创建一个

场景:数据库的连接只需要实例化一次,在整个会话过程中,都是使用这个实例

注册树模式

全局共享和交换对象

场景:在项目中的配置的设置和读取

适配器模式

可以将截然不同的函数接口封装成统一的API

场景:比如mysql的连接,支持mysql,mysqli,pdo

           比如缓存,支持session,memcache,redis

策略模式

将一组特定的行为和算法封装成类,以适应某些特定的上下文环境

场景:比如一个电商网站系统,针对男女性别用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告

数据对象映射模式

将数据对象和数据存储映射起来,是一个对象的操作会映射为数据存储操作

场景:现在常用的php框架,mode操作数据库基本都是使用该模式

观察者模式

当一个对象状态发生改变时,依赖它的对象全部会收到信息,并自动更新

优点:实现低耦合,非入侵的通知与更新机制

场景:一个员工入职,要通知人事,财务以及该员工所在部门的领导

原型模式

与工厂模式的原型实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建对象。这样就免去了类创建时的重复工作

场景:原型模式使用于大对象的创建。因为创建一个大对象需要很大的开销,如果每次都new就会消耗很大,原型模式仅需要内存拷贝即可

装饰器模式:

一个类提供了一项功能,如果要再修改并添加额外功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法。使用装饰器模式,仅需要再运行时添加一个装饰器对象即可实现,可以实现最大灵活性

迭代器模式

提供一种方法顺序访问一个聚合对象中的各个元素,而又须暴露该对象的内部表示

代理模式

在客户端与实体之间创建一个代理对象(proxy),客户端对实体进行操作全部委派给代理对象,隐藏实体的具体实现细节。proxy还可以实现业务代码的分离,部署到另外的服务器,业务代码中通过RPC来委派任务

 

例子:

常用框架数据库的操作:代理模式 + 适配器模式 + 单例模式 + 数据对象映射模式

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值