博客统计信息

用户名:yinbinux
文章数:14
评论数:4
访问量:14811
无忧币:20
博客积分:76
博客等级:1
注册日期:2009-04-17

我最近发表的评论

《精通Unix下C语.. 回复
朱老师 这本书上最后的项目实践的显..
作用:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

UML结构图:

抽象基类:
1)Product:创建出来的对象的抽象基类.
2)Factory创建对象的工厂方法的抽象基类.

接口函数:
1)Creator::FactoryMethod:纯虚函数,由派生类实现,创建出对应的Product.

解析:
在这个模式中,有两个抽象基类,一个是Product为创建出来的对象的抽象基类,一个是Factory是工厂的抽象基类,在互相协作的时候都是由相应的Factory派生类来生成Product的派生类,也就是说如果要新增一种Product那么也要对应的新增一个Factory,创建的过程委托给了这个Factory.也就是说一个Factory和一个Product是一一对应的关系.

备注:
设计模式的演示图上把Factory类命名为Creator,下面的实现沿用了这个命名.

演示实现:

1)Factory.h

2009-06-05 15:53:50



1 引言
  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。
  为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。
  使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操..
        大家知道Linux中创建子进程的一个很好的方法是函数调用fork,但是很多初学者对fork的理解上可能有点困难。我们举个例子来看看fork的用法吧。
        大家用fork的时候记住fork是“分叉”的意思就很好理解了。
        记得初学fork() 函数及遇到这个函数时,总是不能理解fork为什么会这样写,就会分成父子两个进程。
    先看一下fork() 的经典模式
//----------------------------------------..
修改ip mask gateway
vi /etc/sysconfig/network-script-ifcfg-eth0
查看网络接口信息 ifconfig
修改 DNS
vi /etc/resolv.conf 
输入DNS地址即可
修改Hostname
vi /etc/sysconfig/network
可以将其中的默认 主机名删除 改为新的主机名
!!!!!改完主机名后一定要修改Host文件(机器在启动的时候有些应用程序要解析主机名称)
修改host 文件
vi /etc/host
打开该文件后 会有默认的localhost.......,一定不要删除,机器在启动的时候有些应用程序要解析localhost....... ,我们只要在localhost.......的前面加上我们要改的主机..
2009-06-05 15:23:55
1、 堆排序定义
     n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):
     (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤  )
     若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。
【例】关键字序列(10,15,56,25,30,70)和(70,56,30,25,15,10)分别满足堆性质(1)和(2),故它们均是堆,..
Linux 守护进程的编程方法
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。
守护进程的编程本身并不复杂,复杂的是各种版本的Unix的实现机制不尽相同,造成不同Unix环境下守护进程的编程规则并不一致。这需要读者注意,照搬某些书上的规则(特别是BSD4.3和低版..
2009-06-05 15:16:42
 isqlplus和em一直没咋用过,这两天安装感受了一下,遇到问题不少,这里记录一下:
1、安装10g。10g安装采用response文件来进行
下载10201_database_linux32.zip文件,进行解压。
cd database
编辑response/enterprise.rsp 里面的一些参数,这里就省略了,比较简单。
./runInstaller  -responsefile /home/oracle/database/response/enterprise.rsp -silent -nowelcome
 
2、安装完毕后,isqlplus会自动重启,或者使用isqlplusctl start命令重启,默认端口是5560
3、创建数据库db1
create database db1;
4、..
1.引言
  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。
  2.从标准头文件说起
  某企业曾经给出如下的一道面试题:
  面试题
  为什么标准头文件都有类似以下的结构?
 

..
类别:c/c++|阅读(19)|回复(0)|(0)阅读全文>>
 linux系统下提供ln指令来进行文件链接。文件链接主要分为硬链接和软链接。
   硬链接:由于linux下的文件是通过索引节点(Inode)来识别文件,硬链接可以认为是一个指针,指向文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,文件的链接数就加1。
    可以用:ln命令来建立硬链接。语法:
  ln [options] existingfile newfile
ln[options] existingfile-list directory
 
  用法: 第一种:为”existingfile”创建硬链接,文件名为”newfile”。第二种:在”di..
2009-06-05 15:10:04
一.运算符重载的含义与定义方式
l         C++已有的运算符只适合处理C++的基本数据类型。
l         C++允许重新定义已有的运算符(运算符重载),以便它能处理程序员定义类型(类类型)。
l         运算符重载就是赋予已有的运算符多重含义。运算符重载与函数重载类似,是它的特殊类型。
l         C++通过重新定义运算符,使它能够用于特定类的对象执行..
 <<   1   2   >>   页数 ( 1/2 )