摘要: state(状态模式)——对象行为型模式1.意图定义一系列的算法,把他们一个个封装起来并且使他们可以互相替换。本模式使得算法可以独立于使用它的客户而变化。2.别名政策(policy)3.动机将算法硬编码进使用他们的类中是不可取的算法过于复杂有时候需要不同的算法增加新的换行算法或者改变现有的算法将变得非常困难4.适用性1)许多相关的类仅仅是行为有异。策略提供了一种用多个行为中的一个行为来配置一个类的方法。2)需要使用一个算法的不同变体3)算法使用客户不应该知道的数据。可以使用策略模式以避免暴露复杂的、与算法相关的数据结构。4)一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式 阅读全文
posted @ 2012-05-22 22:10 w0w0 阅读(200) 评论(0) 推荐(0) 编辑
摘要: state(状态模式)——对象行为型模式1.意图允许一个对象在其内部状态改变时改变他的行为,似乎修改了这个类。2.别名状态对象(objects for states)3.动机一旦类的状态改变,行为也会产生相应的改变4.适用性一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。一个操作中含有庞大的多分支的条件语句,并且这些分支依赖于该对象的状态。这个状态通常用很多枚举量来表示。通常,有很多个操作包含这个相同的条件结构。state模式将每一个条件分支都放入一个独立的类黄总,使你可以根据对象自身的情况将对象的状态作为一个对象,这一个对象可以不依赖于其他对象而独立变化。5.结构参考 阅读全文
posted @ 2012-05-22 20:45 w0w0 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 上次百度面试问到了单链表逆置的问题,和两个链表如何判相交的问题现在有空把碰到过的跟单链表相关的面试题整理一下1.单链表原地逆置#include<iostream>using namespace std;class node{public: node(int n) { data = n; next = NULL; } node(){}; int data; node *next;};class list{private: node* head;public: list() { head = new node... 阅读全文
posted @ 2012-05-22 10:08 w0w0 阅读(227) 评论(0) 推荐(0) 编辑