原型设计模式适用于需要频繁地创建相似对象或动态地添加新对象的场景。 它可以通过复制已有对象来创建新对象,避免了复杂的创建过程,并且可以在运行时动态地添加新的对象类型。 但是缺点就是:每个类都需要实现clone()方法。
缺点: 观察者之间有过多的细节依赖、提高时间消耗及程序的复杂度。 如果在观察者和观察目标之间存在循环依赖,观察目标会触发它们之间进行循环调用,可能导 致系统崩溃。 优点 观察者模式支持广播通信 观察者和被观察者之间建立抽象的耦合
优点 -各自使用封装的算法,可以容易地引入新的算法来满足相同的接口 -算法的细节完全封装在 Strategy 类中,因此可以在不影响 Context 类的情况下更改算法的实现 -由于实现的是同一个接口,所以策略之间可以自由切换 缺点: -客户端必须知道所有的策略,了解它们之间的区别,以便选择恰当的算法
优点: • ·能提高类的透明性和复用性,现有的类会被复用但不需要改变。 • ·目标类和适配器类解耦,可以提高程序的扩展性。 • ·在一般业务场景中符合开闭原则。 缺点: • ·在适配器代码编写过程中需要进行全面考虑,可能会增加系统复杂度。 • ·增加代码阅读难度,过多使用适配器会使系统代码变得凌乱。
优点 - 代理模式能够将真正被调用的对象进行隔离,在一定程度上降低了系统的耦合度 - 代理对象在客户端和目标对象之间起到一个中介的作用,这样可以起到对目标对象的保护。代 - 理对象可以在对目标对象发出请求之前进行一个额外的操作,例如: 权限检查等 缺点 - 由于在客户端和真实主题之间增加了一个代理对象,所以会造成请求的处理速度变慢 - 实现代理类也需要额外的工作,从而增加了系统的实现复杂度
在上篇通过代码示例讲过工厂模式的设计思路上篇链接浅谈设计模式-工厂模式的设计思想以及细节问题(上篇)_高云城的技术博客_51CTO博客首先工厂模式可以总结为,让一个工厂类负责创建所有对象,用户不需要关注类对象创建的细节。但作为C++程序设计,我还是想多思考几个问题那么第一个问题自然又回到了C++类与对象这个基础又灵活的问题1对象的创建方式,对象是怎么创建的?简单工厂模式SimpleFactorys
工厂模式提供了一种将对象的实例化过程封装在工厂类中的方式。 通过使用工厂模式,可以将对象的创建与使用代码分离,提供一种统一的接口来创建不同类型的对象。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
设计模式-单例-懒汉式 用到创建对象时才创建对象; 线程非安全但可以通过一些方式变成线程安全;
单例模式: *一个类只实例化一个对象 *类的构造函数设置private或者protected *提供一个静态的 能获取类对象地址的 函数指针(用静态函数指针指向内对象地址)
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号