模板参数推导

模板参数推导模板参数推导(template argument deduction),是在调用C++的模板函数时,由编译器根据使用上下文来推断所调用的模板函数的模板参数。这一概念也适用于类的模板成员函数。类模板也存在模板参数推导的情形。例如:template <class T> struct eval; template <template <class, class...> class TT, c
阅读本文

C++ 面试要点

Copyright © 1900-2016, NORYES, All Rights Reserved.http://www.cnblogs.com/noryes/--------------------------------------------------------------------------------------- 1、C++ 基础知识类的内存布局,vtable的原理,虚继承的
阅读本文

设计模式(十六):建造者模式

一、概述    建造者模式很容易让人想到建房子,不管建刚需房、改善房还是别墅,它们都离不开地基、柱子、层面和墙体这些组成部分,建筑工人就是把这些组成部分一个个建起来,最后连成一体建出一栋栋楼房。来看看建造者模式的定义,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建房子的过程都是相似的,但可以建出形形色色的房子。二、结构类图三、应用实例  我们用制造自行车为例子讲解建造
阅读本文

JAVA设计模式 -- 代理模式

动态代理: 就是通过一定的手段, 在我们的已有的方法执行前后, 动态的插入其他动作。 通过此手段, 可以将一些重复的功能代码提取出来(如开关数据库连接,打日志等等),使目标方法代码更简洁。如果有后来批量功能需要插入业务流程中,也可以很优雅的做到, 而不侵入污染目标代码  参考文献:1.2.
阅读本文

设计模式——中介者模式

中介者模式一般用于解决多个对象或者多个系统之间相互关联,交互的复杂关系的问题!这种关系一般是网状结构,使用中介者模式,将这种网状结构转换为星型结构,降低各个对象之间的耦合度。网状结构一般会导致系统复杂,可扩展性差,对象可复用程度降低!中介者模式的缺点是中介者类比较复杂,而且一旦出问题可能会影响整个系统!中介者模式的核心是中介者与其同事之间的双向绑定关系,即中介者拥有需要交互的所有同事,同事拥有中介
阅读本文

设计模式-开篇

一、设计模式 1.1 六大设计原则 单一职责原则(SRP):一个类只负责一个职责,不要存在多个导致类变更的原因;接口隔离原则(ISP):客户端不应该依赖它不需要的接口,多用组合,少用继承依赖倒置原则(DIP): 提高灵活性,高层不依赖低层,两个都应该依赖于抽象里氏替换原则(LSP):子类必须能够替换他们的基类迪米特法则(LOD):类间解耦,类之间联系尽可能少开闭原则(OCP): 扩展开放,修
阅读本文

设计模式(3)-抽象工厂模式

抽象工厂模式   抽象工厂模式属于创建型的设计模式,抽象工厂模式针对的是多个产品等级结构,而工厂方法模式是针对单个产品等级结构的。理解抽象工厂模式需要理解产品族和产品等级这两个概念。   产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如AMD的主板、芯片组、CPU组成一个家族,Intel的主板、芯片组、CPU组成一个家族。   产品等级:由相同的结构的产品组成,比如主板、芯
阅读本文

设计模式笔记

设计模式,对于初学者可能是一个高级的词汇,但是当你工作一两年的时候 或多或少在不知不觉的情况下用到了这些东西。虽然实际开发中大多数设计模式是用不到的,但是你还是需要了解一下他们。推荐一本书《大话设计模式》,这本学厉害在 你在学习的过程中 不会让你感觉到无聊与枯燥,让你有耐心看下去。 1、工厂设计模式 避免了重复的创建对象,对象交给工厂管理。 简单工厂: 工厂: 抽象工厂: 2、装饰设计模式
阅读本文

Java设计模式--单例设计模式

单例对象:保证内存中只存在一个对象, 保证对象的唯一性。1) 禁止其他程序通过构造函数创建该类对象。2) 只允许其他程序通过该类中的定义方法来实例化对象。 实现:1) 在类中创建该类的私有静态的对象。2) 将构造函数私有化。3) 提供一个静态方法来获取该对象。 饿汉式设计模式: 1 /** 2 * 饿汉式设计模式 3 * 4 * @author Wáng Chéng Dá 5 *
阅读本文

大话设计模式读书笔记--9.建造者模式

定义建造者模式定义:将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示既保证流程不变, 每个流程实现的具体细节可以变化, 比如:建造楼房, 先打桩,在搭架子....在程序中对应的是: 抽离出对象的组成部分以及他们的装配方式模式机构Build: 抽象类,创建Product对象的各个部件指定的抽象接口ConcreteBuild: 具体建造者,构造和装配各个部件 Product:
阅读本文

设计模式——命令模式

命令模式:将命令封装成对象(下面示例中的Command对象),实现命令请求和命令执行者的解耦!应用场景:1、出现一组命令的时候。2、需要实现undo操作的时候。3、命令请求与执行可能不是同步的是,需要实现异步处理;4、命令需要事务控制的时候角色:receiver执行命令的具体对象,命令的实际执行者!ICommand 命令的抽象接口,将一组命令进行抽象;一般包含一个执行方法,一个undo方法;Com
阅读本文

第6章继承

这一部分的内容将会对对象这一数据类型做进一步的深化理解,并且讲述几种创建对象的设计模式以及JavaScript独特的继承机制;6.1理解对象6.1.1属性类型1. 数据属性数据属性包含一个数据值的位置,在这个位置可以读取和写入值,数据属性有4个特性: Configurable 能否通过delete删除属性而重新定义,能否修改为访问器属性。默认true。Enumerable 能否通过for-in 循
阅读本文

【软件测试基础】软件测试模式

1.软件测试的分类,按照测试模式分类:瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等 2.传统的瀑布模型:项目计划、需求分析、软件设计、程序开发、软件测试、集成维护每个阶段按照顺序到下一个阶段。每一个阶段都是用上一个阶段的输出作为下一个阶段的输入。 项目计划:制定项目总体的研发计划,确定主要的里程碑节点。这个阶段会输出项目计划书。 需求分析:明确用户的需求定义,并对定义进行清晰的
阅读本文

lazy ideas in programming(编程中的惰性思想)

lazy形容词,懒惰的,毫无疑问是一个贬义词。但是,对于计算机领域,lazy却是非常重要的优化思想:把任务推迟到必须的时刻,好处是避免重复计算,甚至不计算lazy loading(惰性加载)、lazy initializing(惰性初始化)、lazy evaluation lazy ideas:  在GOF的设计模式中,并没有一个叫“lazy loading”之类的设计模式,但是其思想贯穿在很
阅读本文

Javascript 闭包与高阶函数 ( 二 )

在上一篇 中介绍了两个闭包的作用。 两位大佬留言指点,下来我会再研究闭包的实现原理和Javascript 函数式编程 。这一篇,继续举一些闭包的常见例子 。提取this我们常常需要面临下面的业务场景var push = Array.prototype.push; var a = []; push.call(a, 1); console.log(a); // 1这样固然可行,可是 我们有时候更想
阅读本文

设计模式——责任链模式

责任链模式是一种行为模式,由许多可以处理同一件事情的对象,组成一个链状结构,每一个对象记录其下一个对象的引用,用于传递请求;请求在这个链上传递,直到被处理或者是不能处理,返回!tomcat的servlet,Struts的filter都采用了责任链的设计模式。以领导批复员工请假为例:项目经理 部门经理 boss都可以批准请假,但处理请假的权限和处理方式可能略有不同;如项目经理只能处理1天以下的请假,
阅读本文

LBSN中的用户行为模式分析

LBSN中的用户行为模式分析zoerywzhou@gmail.comhttp://www.cnblogs.com/swje/ 2015-12-23 声明:3)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢。请联系:zoerywzhou@163.com  目前还谈不上学习计划,现阶段仍以毕业设计为主,只是捎带着学习,进度会比较慢。 先看两篇论文了解一下目前国内外的进展:   Min
阅读本文

123123

class Singleton(object): ‘‘‘‘‘ A python style singleton ‘‘‘ def new(cls, *args, **kw): if not hasattr(cls, ‘_instance‘): org = super(Singleton, cls) cls._instance = org.new(cls, *args, **kw) return cl
阅读本文

细说委托

1 从观察者模式说起在设计模式中,有一种我们常常会用到的设计模式——观察者模式。那么这种设计模式和我们的主题“如何在Unity3D中使用委托”有什么关系呢?别急,先让我们来聊一聊什么是观察者模式。首先让我们来看看报纸和杂志的订阅是怎么一回事: 报社的任务便是出版报纸。 向某家报社订阅他们的报纸,只要他们有新的报纸出版便会向你发放。也就是说,只要你是他们的订阅客户,便可以一直收到新的报纸。 如果不再
阅读本文