java,架构,编程语言相关专家
1状态模式的核心内容是: A:状态类 B:工作类 2状态模式的作用:通过状态值自动跳转到要执行的类。 3状态模式具体描述 状态模式:状态模式允许一个对象在其内部状态改变的时候改变行为。 这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行 为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的 一个子类。状态模式
1中介模式的核心内容是: A:通过中间这向多方发送消息 2中介模式的作用:通过中介模式模式中介对两个互不通信的部分进行发通知。 3中介模式具体描述 MEDIATOR调停者模式 调停者模式:调停者模式包装了一系列对象相互作用的方式, 使得这些对象不必相互明显作用。从而使他们可以松散偶合。 当某些对象之间的作用发生改变时,不会立即
1装饰模式的核心内容是: A:通过中间这向多方发送消息 2装饰模式的作用:。 3装饰模式具体描述 装饰模式:装饰模式以对客户端透明的方式扩展对象的功能, 是继承关系的一个替代方案,提供比继承更多的灵活性。 动态给一个对象增加功能,这些功能可以再动态的撤消。 增加由一些基本功能的排列组合而产生的非常大量的功能。 Mary过
1原型模式的核心内容是: A:使用一个clone方法复制自己的属性,并将自己返回 2原型模式的作用:就是一个复制自己的过程。 3原型模式具体描述 原型模式允许动态的增加或减少产品类, 产品类不需要非得有任何事先确定的等级结构, 原始模型模式适用于任何的等级结构。 缺点是每一个类都必须配备一个克隆方法。 跟MM用QQ聊天,
1外观模式的核心内容是: A:多个子系统的类 B:通过一个统一的门面进行管理 2外观模式的作用:让各各子类的运行由一个类统一进行管理。 3外观模式具体描述 门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。 门面模式提供一个高层次的接口,使得子系统更易于使用。 每一个子系统只有一个门面类,而且此门面类只有一个实例,
1享元模式的核心内容是(对下面代码的总结): A:一个网站的抽象类 B:一个用于实例化网站的类 C:由一个工厂类维护网站的创建,并将站点管理存储到Map中 2享元模式的作用:统一管理站点的创建。 3享元模式具体描述 享元模式:FLYWEIGHT在拳击比赛中指最轻量级。 享元模式以共享的方式高效的支持大量的细粒度对象。 享元模式能做
1适配器模式的核心内容是: A:两种或多种不同类型的类。 B:通过适配器(Translator)让另外一种(ForeignCenter)协同另外一者工作。达到类似player的功能 2适配器模式的作用:让不是一种类型的类也同样执行类似相同类的动作。 3桥接模式具体描述 适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口 从而使
1桥接模式的核心内容是: A:定义好抽象的接口类。 B:对于不同的情况不同实现。但是实现是要求和模板的定义的相同。 2桥接模式的作用:说白了就是定义类模板,然后实现。 3桥接模式具体描述 //桥接模式:将抽象化与实现化脱耦,使得二者可以独立的变化 //也就是说将他们之间的强关联变成弱关联 //也就是指在一个软件系统的抽象化和实现化之间使用组合
1命令模式的核心内容是: A:发命令者,与实际不同的是,发命令者要求了实际由谁做菜,烤肉。 B:有两个级别的服务员,一个级别的服务员每次只收集一个命令;另外一类服务员可以同时收集多条命令,最后通知厨子和Barbecuer 2命令模式的作用:通过命令模式可以模拟到餐馆下单,服务员向厨子发命令的这个场景。 3命令模式具体描述 命令模式:命令模式把一个请
1模板模式的核心内容是: A:定义好抽象的接口类。 B:对于不同的情况不同实现。但是实现是要求和模板的定义的相同。 2模板模式的作用:说白了就是定义类模板,然后实现。 3模板模式具体描述 模板方法模式:模板方法模式准备一个抽象类, 将部分逻辑以具体方法以及具体构造子的形式实现, 然后声明一些抽象方法来迫使子类实现剩余的逻辑。
1解释器模式具体描述 解释器模式:给定一个语言后,解释器模式可以定义出其文法的一种表示, 并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。 解释器模式将描述怎样在有了一个简单的文法后,使用模式设计解释这些语句。 在解释器模式里面提到的语言是指任何解释器对象能够解释的任何组合。 在解释器模式中需要定义一个代表文法的命令类的等级结构,
1建造者模式的核心内容是: A:不同的要建造的产品。 B:有一个设计师Director类来直到进行建造。 2建造者模式的作用:将产品的内部表象和产品的生成过程分割开来。 3建造者模式具体描述 //建造模式:将产品的内部表象和产品的生成过程分割开来, //从而使一个建造过程生成具有不同的内部表象的产品对象。 //建造模式使得产品内部表象可以独
1观察者模式的核心内容是: A:要有被监视的对象,案例中的是Subject B:要有观察者,相当于被监视的对象的粉丝 C:被监视的对象存储自己的粉丝,也解释粉丝。其内部的方法方法通知自己的粉丝情况。 2观察者模式的作用:相当于模拟公司职员监视老板的情况。 3观察者模式具体描述 观察者模式:观察者模式定义了一种一对多的依赖关系, 让多个观察者
1访问者模式的核心内容是: A:父类中存储一个作为关键字的变量。 B:子类根据这个关键的不同做不同的操作。 C:在访问的时候不用关心具体的内部实现方式,通过调用得出结论接口就可以得出结论。 2访问者模式的作用:送多个妹子花时,通过访问者模式实现根据特点做不同的配对。 3访问者模式具体描述 访问者模式:访问者模式的目的是封装一些施加于某种数据结构元素之
1迭代器模式的核心内容是: A:不断重新定义虚函数,在不改变原来的程序功能的情况下,不断增强程序的功能。 2迭代器模式的作用:通过增加纯虚函数的方式不断增强程序 3迭代器模式具体描述 //迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。 //多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。
1单例的核心内容是: A:有静态的类成员变量。获得实例的方式是通过公有的getInstance()方法。 2单例模式的作用:通过单例模式,让一个类在项目中只有一个实例。 3单例模式具体描述 //单例模式:单例模式确保某一个类只有一个实例, //而且自行实例化并向整个系统提供这个实例单例模式 //。单例模式只应在有真正的“单一实例”的需求时才可使用
1代理模式的核心内容是: A:最终追求的对象:SchoolGirl B:实际送礼物的类:Pursuit C:代理中含有一个Pursuit对象,实际通过调用它来送礼物。 2代理模式的作用:通过代理实现本应该自己做的事儿。 3代理模式具体描述 代理模式:代理模式给某一个对象提供一个代理对象, 并由代理对象控制对源对象的引用。 代理就是一个
1简单工厂模式的核心内容是: A:方法独立 B:没有工厂,而是通过switch的方式判断使用哪个方法。 C:理解:带同一个妹子到同一个地点,妹子可以选择不同的菜。 2简单工厂模式的作用:用一个简单的switch和一个方法控制使用哪个方法。 3简单工厂模式具体描述 工厂模式:客户类和工厂类分开。 消费者任何时候需要某种产品,只需向工厂请求
1工厂方法模式的核心内容是: A:每种方法通过独立的类来表示。 B:通过工厂来创建实例化方法 C:理解:带同一个妹子到不同的地点(麦当劳,肯德基….)去吃饭. 2工厂方法模式的作用:程序访问不同的工厂,来让工厂创建自己想要的操作。 3工厂方法模式具体描述 工厂方法模式:核心工厂类不再负责所有产品的创建, 而是将具体创建的工作交给子类去做,成
1抽象工厂模式的核心内容是: A:消费者分离,分别用不同的类实现(包含抽象类和实现类) B:操作分离,分别用不同的类实现(包含抽象类和实现类) C:使用工厂类使消费者类和操作类关联起来,有总线的功能。 2抽象工厂模式的作用:使用工厂将分别独立的消费者和实际的操作关联起来。 3抽象工厂模式具体描述 工厂模式:客户类和工厂类分开。 消费者任何时候需
1策略模式的核心内容是: A:包含策略的抽象类 B:不同的策略分别实现 C:策略控制器,通过这个策略控制器实现调度控制策略。 2策略模式的作用是根据传递进去的参数不同,实现调度执行不同的策略。 3策略模式具体描述 策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中, 从而使得它们可以相互替换。策略模式使得算法可
1备忘录模式的核心内容是: A:包含一个存储记录的结构(C++中用类这种结构来存储) B:包含产生记录的类。 C:使用一种数据结构来存储操作的记录。 2备忘录模式的作用是回放所做的操作 3备忘录模式具体描述 备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。 备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,
1find查找 #include<iostream> #include<vector> #include<algorithm> #include<list> #include<set> #include<string> usingnamespacestd;
lambda表达式 //C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下: //[函数对象参数](操作符重载函数参数)mutable或exception声明->返回值类型{函数体 } //可以看到,Lambda主要分为五个部分: //[函数对象参数]、(操作符重载函数
1GPU编程,依赖于显卡 2GPU变成依赖于OpenGL和direct 3CPU的特点是:频率比较快,GPU的特点是寄存器非常非常的多。 4如果电脑是windows7,没法直接调试GPU。Window8可以直接调试 5用VS2013新建一个项目,命名:GPU 6调试GPU的方式是VS中的:打断点—>运行项目à调试à窗口àGPU线程(通过这种方
1multiset中用equal_range来遍历所有的元素 #include <set> #include <iostream> using namespace std; //multiset中存储的元素是不重复的 void main() { multiset<int>
1红黑树set(不能包含重复元素) 案例1:红黑树容器set,插入,查找 #include<iostream> #include<set> usingnamespacestd; //set中不能有重复的元素,它是一个红黑树容器 voidmain() { set<int>myset
1.stack,size(),empty(),pop()函数 #include<stack> #include <iostream> using namespace std; //通过push()方法入栈 //通过size()方法求栈中元素的个数 //通过empty()方法判断栈是否为空
1.STL(Standard Template Library,是用泛型技术来设计完成的实例)的概念与组成 Iterator(迭代器) Container(容器) Algorithm(算法) Adaptors(配接器) STL的六大组件分别是: 容器(Container) 算法(Algorithm) 迭代器(Iterat
1.多线程 多线程案例: #include <iostream> #include <thread> #include <string> #include<windows.h> using namespace std; void run(int num)
1.二进制写入,ios::binary #include<iostream> #include <fstream> #include <string> using namespace std; struct MyStruct { char *p = "北京是
文本提取 A: #include<iostream> #include<stdlib.h> usingnamespacestd; voidmain() { { charbuf[80]; cin.get(buf, 80);//以回车结束,最大长度
1.ofstream,open,close 写入文件 #include<iostream> #include<fstream> using namespace std; //通过ofstream的方式实现写入文件 open,close void main() { ofst
1. istringstream字符串流 #include <iostream> #include <sstream> #include <string> using namespace std; struct MyStruct { string str1,
1.在window下的命令重定向输出到文件中 2.将内容输入到某个文件中的方式:命令<1.txt (使用1.txt中的命令) 3.读取文件中的名,然后将命令读取最后输出到文件中。命令<1.txt>2.txt 这一句的作用就是将执行的命令输入到2.txt中。 4.文件重定向案例1 #include <iostream>
#include <iostream> //加减乘除,都是靠位运算, //将来从事手机端,嵌入式开发,位操作, class jia;//声明,只能声明指针或者引用 jia *pjia1; jia *& pjia2 = pjia1; //jia& jia2; //jia
1.override,final的使用,两者都是针对虚函数,也就是说要有virtual关键字 #include <iostream> //C++中的final和override主要是针对虚函数 //加了final表示拒绝重写,这是为了使某些情况下,拒绝接口的重写 //override,声明重写父类的方法,前提是要有virtual关
1.第一个最简单的类模板案例 #include "mainwindow.h" #include <QApplication> #include <QPushButton> #include <QLabel> template<class T> class run {
异型链表(每个节点中类型都不相同)案例如下: #include "mainwindow.h" #include <QApplication> #include<QPushButton> #include<QLabel> //异型链表 class base { publi
1.静态联编,是程序的匹配,连接在编译阶段实现,也称为早期匹配。重载函数使用静态联编。 2.动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编。switch语句和if语句是动态联编的例子。 #include<iostream> void go(int num) { } void go(char *str) { } //class //::在一个类中 cl
常量的基本类型转换,例如:int num(10.8),这种方式是隐式转换。 通过函数的构造函数实现转换。 类类转换函数,当构造函数不能将类型转换成基本类型时。所以就有了类类转换函数,通过这种方式。 案例: #include <iostream> class fushu { public: //通过加
1.拷贝构造 //拷贝构造的规则,有两种方式实现初始化。 //1、一个是通过在后面:a(x),b(y)的方式实现初始化。 //2、第二种初始化的方式是直接在构造方法里面实现初始化。 案例如下: #include<iostream> //如果声明已经定义,边不会生成 class classA { private: int a; i
1. 操作符(++,+,+=,小于号等)重载 新建QT项目,编写头文件 #ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include<QLabel> namespace Ui { class Dialog; } //编写自己的Label class myLabel { p
1.定义成了const之后的类 #include <iostream> class area { public: int x; int y; mutable int z; //不受const约束的类成员 area() :x(10), y(10), z(2) { } void printxy()const //不可以访问类中局部变量
1.用模板元实现50个台阶问题,一次走一步或者两步或者3步 2.分析 由上面分析可以知道,到达N(N > 3)级台阶时的次数为:目标台阶的前3个台阶分别直接到目标台阶的次数总和。 3.模板元把在运行时消耗的时间,在编译器键优化。 4.通过模板元实现的代码如下: #include <iostream> /*这里是int
1.C++中的结构体 #include<iostream> struct lstruct { int num; }; struct MyStruct { int num; double db = 10.8;//可以有默认的值 //MySt
1.故事介绍 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。 2.由来 法国数学家爱德华·卢卡斯曾编写过一个印度的
求变量的数据类型,通过函数typeid(变量名).name();获得变量的数据类型。 案例如下: #include<iostream> #include<stdlib.h> voidmain() { doubledb = 10.9; double *pdb = &db;
1.通过引用来引用数组(一维数组) #include <iostream> #include <stdlib.h> /*引用就是给原来的变量有一个别名同一个地址*/ void main() { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
使用C++风格的数组,不需要管理内存。 array要注意不要溢出,因为它是栈上开辟内存. array适用于任何类型 #include<iostream> #include<array> #include<vector> //C++的标准库 #include<string