设计模式
文章平均质量分 60
jamin_liu_91
找到自己喜欢的,热爱自己热爱的,专注自己本职的!!!
展开
-
设计模式:抽象工厂模式
抽象工厂定义:提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。原创 2023-03-26 21:42:22 · 167 阅读 · 1 评论 -
设计模式:代理模式
代理模式:为其他对象提供一种代理以控制(隔离,使用接口)对这个对象访问。原创 2023-03-23 10:23:05 · 140 阅读 · 0 评论 -
设计模式:桥模式
将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化。原创 2023-02-26 16:51:44 · 79 阅读 · 0 评论 -
设计模式:模板模式 CRTP设计习语
Template Method模式是一种非常基础性的设计模式,在面向对象系统中有着大量的应用。它用最简洁的机制(虚函数的多态性)为很多程序框架提供了灵活的扩展点,是代码复用方面的基本实现结构。原创 2023-02-19 22:02:06 · 407 阅读 · 0 评论 -
设计模式:装饰模式
动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码&减少子类个数)。原创 2023-02-14 21:21:52 · 185 阅读 · 0 评论 -
设计模式:策略模式
定义了算法家族,分别封装起来,让他们之间可以互相转换,此模式让算法的变化不会影响到使用算法的客户。属于行为型模式。原创 2023-02-14 00:03:58 · 100 阅读 · 0 评论 -
设计模式:观察者模式
观察者模式的关键对象是主题Subject和观察者Observer,一个Subject可以有任意数目的依赖它的Observer,一旦Subject的状态发生改变,所有的Observer都可以得到通知。Subject发出通知时并不需要知道谁是它的观察者,也就是说,具体观察者是谁,它根据不需要了解。Observer类,抽象观察者,为所有的具体观察者定义一个接口,在得到主题的通知时更新自己。StockObserver,具体观察者,实现抽象观察者角色所要求的更新接口,以便使本身的状态与主题的状态相协调。原创 2023-02-05 22:27:15 · 3901 阅读 · 1 评论 -
设计模式:单例模式
在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常安全地执行,不会出现数据的污染等情况。这种方法存在问题:在多线程场景下还是有可能会存在线程安全的问题,因为多线程同时调用GetInstance方法有可能还是会产生竞争。上述单例利用std::call_once和std::once_flag实现,std::call_once的调用是线程安全。(2)拷贝构造函数和赋值构造函数是私有类型,目的是禁止外部拷贝和赋值,确保实例的唯一性;单例模式是为了保证程序的线程安全。原创 2023-01-28 19:48:33 · 496 阅读 · 0 评论 -
设计模式:简单工厂模式
所有初学者可能会有这个问题,在碰到问题就直觉地用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程。这种用计算机方式思考,本身没有什么问题,但是仅仅实现了当前的需求,程序不容易维护,不容易扩展,更不容易复用。达不到高质量代码的要求。操作分为加减乘除,因此可以抽象出一个运算类,分出加法类、减法类、乘法类和除法类,通过这四个类继承运算类。运算类关联简单工厂类,通过简单工厂类创建不同的操作对象。如何能够让上述程序更加灵活并且易于复用,准确的说就是让业务逻辑与界面逻辑分开,让它们之间的耦合度下降。原创 2023-01-27 21:28:24 · 130 阅读 · 0 评论