`
文章列表
看看这一段代码有什么问题么?我的@teacher.power保存到数据库总是NULL: 创建的代码: def create count = Teacher.count if count == 0 #第一个注册者拥有最高权限3,自动为管理员 params[:teacher][:power] = 3 else params[:teacher][:power] = 0 #其他的拥有最低权限0,等待管理员管理权限 end @teacher = Teacher.new(params[:teacher]) i ...
Template method和Strategy模式经常在框架设计中被使用,并且二者很相似,都是父类定义功能接口,将具体的实现留个子类,有时二者可以相互替换。 Template method主要是父类将一个功能的实现分成几个小的步骤,并且在模版方法中规定了这些步骤的执行顺序,同时定义了这些子步骤的protected类型的方法留给子类实现,声明为protected主要是以防止用户不恰当的使用这些方法而产生异常。实现者不需要考虑这些子步骤地执行顺序,只需要实现具体的功能就行了。其实每一个子类去具体的实现这些子步骤,也有策略的味道,只不过Template method主要是在父类封装了子步骤地顺序,从 ...
前几天在论坛看到谈论Spring中的Callback模式和Template模式,我以前也提到过Spring中JdbcTemplate中使用的Callback , 自己回来想了想,总结一下自己的想法。 Spring中的Callback模式与Template模式合用,随处可见。Template method被广泛的使用,像Servlet就是使用这个模式。Template mothod模式虽然能简化很多重复的代码,但这种模式的也有不少限制。Template mothod将一个功能的实现分成许多小的步骤,在父类中定义了这些步骤的顺序,让子类来具体实现每一个小的步骤。这些小的步骤是protected,以防 ...

刚到这就碰壁了

昨天把csdn的博客,往这转,不小心把几篇以前写得老文章发到了论坛中,被评为隐藏,更有 不分青红皂白的人说抄的,本人从来都是在转载的文章前标注[转载],并表明出处.没想到初到这里就碰壁了.
      设计模式对于做软件者来说是必修的内功之一,尤其现在面向对象已经成为主流的开发方法。掌握那些经过证实的面向对象的设计模式是学习和理解面向对象的绝佳途径,每一个模式都是面向对象最经典的应用。以前算 ...
dom对xml的操作: import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.xml.sax.*; import java.io.*; import org.w3c.dom.*; public class control implements java.io.Serializable { private ...
用java写的基于Socket的简单即时通讯程序,用户可以注册并登录,也可以作为游客身份使用. /**//* *服务端 */ package edu.jlu.fuliang; import java.io.*; import java.net.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing. ...
今天还有人问我是原创,还是转载,这些文章都是我以前写的,可能有点老,或者在别的地方见过,所以我也就没有选同时加入论坛,否则可能遭到更多的非议,我现在是把我以前的博客导入这里,而主页前台早就不好使了(这也是我在这里安家的原因之一吧),所以html导入也就不好使,这两天感冒,啥也干不了,就好手工操作了。
并查集为解决等价类问题提供了一个高效快速的数据结构,在许多涉及到等价类的算法中,他都扮演着 改进算法中使用的数据机构的角色,他对提高算法的效率是可见一斑,例如在带有限期的作业问题中,在求最小生成树Kruskal算法都可以使用并查集高效的实现. const int DefaultSize = 20; class UFSets{ public: UFSets(int s = DefaultSize); ~UFSets(); void Union(int root1,int root2); void WeightUnion(int root1,int root2);//基于 ...
堆排序的时间复杂性为nlog(n),空间复杂度为o(1),为比较排序的下界,因此具有非常好的性能,使用堆,也很容易实现堆排序. #include<iostream> #include"MinHeap.h" using namespace std; template<class T> void HeapSort(T a[],int n){ T temp; MinHeap<T> *m_heap = new MinHeap<T>(a,n); for(int i = n-1; i >= 1; i--){ ...
最小堆应用---用最小堆实现huffman树,huffman是形成huffman编码的基础. #include"MinHeap.h" template<class T> class HuffmanTree; template<class T> class TreeNode{ friend class HuffmanTree<T>; private: T data; TreeNode<T> *left,*right; public: TreeNode(T value){ dat ...
作为最小堆应用,实现了另一个实用的类----优先队列.优先队列有着广泛的应用,在操作系统中,许多消息队列、等待队列等,使用了优先队列,在算法中,我们常用优先队列来实现广度搜索、贪心算法等。 Priority_Queue.h #include"MinHeap.h" template<class T> class Priority_Queue{ public: Priority_Queue(); ~Priority_Queue(); void Push(const T &x); T Pop(); bool Is ...
最小(大)堆是比较常用的数据结构,是实现优先队列和堆排序的基础,也可以实现例如霍夫曼编码,贪心算法等,具有很好的时间复杂性. template<class T> class MaxHeap{ public: MaxHeap(T a[],int n); MaxHeap(int ms); ~MaxHeap(); bool Insert(const T &x);//插入一个元素,如果空返回false,否则返回true bool RemoveMax(T &x);//删除最小的元素,如果空返回false,否则返回true vo ...
最小(大)堆是比较常用的数据结构,是实现优先队列和堆排序的基础,也可以实现例如霍夫曼编码,贪心算法等,具有很好的时间复杂性. MinHeap.h文件 template<class T> class MinHeap{ public: MinHeap(T a[],int n); MinHeap(int ms); ~MinHeap(); bool Insert(const T &x);//插入一个元素,如果空返回false,否则返回true bool RemoveMin(T &x);//删除最小的元素,如果空返回fals ...
Global site tag (gtag.js) - Google Analytics