关闭

代理模式(结构型设计模式)

Proxy模式又叫做代理模式,是结构型的设计模式之一,他可以为其他对象提供一种代理(Proxy)以控制对这个对象的访问。 所谓代理,是指具有与代理元(被访问的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类进行交互,而代理一般在交互模式过程中(交互前后),进行某些特别的处理。 结构图: eg: 现有一个红酒厂,需要代理卖红酒,客户端通过代理,得到红酒。 实现:class B...
阅读(11) 评论(0)

idea常用快捷键

IntelliJ Idea 常用快捷键列表Ctrl+Shift + Enter,语句完成 “!”,否定完成,输入表达式时按 “!”键 Ctrl+E,最近的文件 Ctrl+Shift+E,最近更改的文件 Shift+Click,可以关闭文件 Ctrl+[ OR ],可以跑到大括号的开头与结尾 Ctrl+F12,可以显示当前文件的结构 Ctrl+F7,可以查询当前元素在当前文件中的引用,然...
阅读(24) 评论(0)

二叉树对称问题

1.镜像二叉树: 如图: 需求:编写一个函数,传入一棵二叉树,将该二叉树变成他的镜像。 交换过程: 总结上面的过程:先前序遍历二叉树,如果是叶子节点,则两个兄弟节点就进行交换 。 实现:void mirrorRecurisively(BTNode *root){ if (!root){ return; } else{ BTNo...
阅读(19) 评论(1)

求序列中最大子序列和(分治算法)

分治算法 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。 分治思想 当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成...
阅读(34) 评论(0)

适配器模式(结构型设计模式)

概念 通过适配器模式可以改变已有类的接口。 适配器的意义 那不同接口调用转换成相同接口的调用,并实现了代码的复用 结构图: 需求: 现有一个家用电器需要使用18V的电源,但是只有220V的电源,通过适配器完成家用电器的使用。 代码实现:class Current18V{ public: virtual void useCurrent18V() = 0; }; class C...
阅读(90) 评论(0)

工厂模式

1.简单工厂模式:(简单工厂模式不属于23种设计模式) 结构图: 优点:统一接口 缺点:违背了“开闭原则” 代码实现: 生产类:class Product{ public: virtual void getName() = 0; }; class ProductA:public Product{ public: void getName(){ cout...
阅读(135) 评论(0)

单例模式

单例模式是一种对象创建模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。 类图 为什么使用单例模式? 在应用开发中,常常有如下需求: *在多线程之间只初始化一个资源。 *在整个程序空间中使用全局变量共享资源。 *在大规模系统中,为了性能考虑,以及需要节省兑现的创建时间等等。 懒汉式class Singelton{ priv...
阅读(22) 评论(0)

设计模式相关基础知识

设计模式的最终目的:高内聚,低耦合 设计模式的原则: 1)开放封闭原则: 类的改变是通过增加代码进行的,而不是修改代码 案例展示: 2)单一的职责原则: 类的职责要单一,只对外提供一种功能,而引起类变化的原因都应该只有一个 3)依赖倒置原则: 依赖于(抽象)接口,不要依赖具体的实现(类),也就是针对接口编...
阅读(28) 评论(0)

马踏棋盘(回溯算法)

马可以走的位置如图: 要求: 找到所有马从任意一个位置出发遍历整个棋盘的一条路径 算法实现:#include #include int chessboard[12][12];//定义棋盘, //马走的方向 int move[8][2] = { { 2, 1 }, { 1, 2 }, { -1, 2 }, { -2, 1 }, { -2, -1 }, { -1...
阅读(38) 评论(0)

迷宫(回溯算法)

要想解决迷宫问题,首先搞明白八皇后,迷宫问题是回溯和贪心的产物。 题目:现有一个迷宫如图: 黄色五角星为迷宫的起点,红色五角星为迷宫的终点。 要求:找到从起点到终点的所有路线。 思路:我们的目的为了到达终点,所以一定要向着终点的方向出发。 因为迷宫的终点在起点的右下角。 所以我们选择路径时先考虑向下走, 走不通考虑向右走, 走不通考虑向上, 最后考虑向左。 这样就会总有一次到...
阅读(24) 评论(0)
54条 共6页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:2355次
    • 积分:550
    • 等级:
    • 排名:千里之外
    • 原创:54篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论