原型模式
//由于项目内用的都是C++  我写的伪代码都是用C++实现的  另外原理我可能介绍的比较少 但也会有部分  主要是代码实现
原型模式属于对象创建模式,用原型实例指定创建对象的种类,并且通过创建拷贝这些原型创建新的对象。
工厂模式 对新产品 的适应能力比较弱。来看看原型模式:
1.客户角色 :让一个原型克隆自己来得到一个新对象
2.抽象原型角色:实现了自己的clone 方法,扮演这种角色的类通常是抽象类,且它具有
许多具体的子类。
3.具体原型角色:被复制的对象,为抽象原型角色的具体子类。

class AbstractPrototype{
private:
public;
AbstractPrototype()
{

}
~AbstractPrototype()
{

}

virtual AbstractPrototype* Clone() = 0;

};

class ConcreatePrototype1:public AbstractPrototype{
private:
public:
ConcreatePrototype1()
{

}
ConcreatePrototype1(const ConcreatePrototype1&)
{

}
virtual ~ConcreatePrototype1()
{

}
virtual AbstractPrototype* Clone()
{
 return new ConcreatePrototype1(*this);
}
};

class ConcreatePrototype2:public AbstractPrototype{
private:
public:
 ConcreatePrototype2()
 {

 }
 ConcreatePrototype2(const ConcreatePrototype1&)
 {

 }
 virtual ~ConcreatePrototype2()
 {

 }
 virtual AbstractPrototype* Clone()
 {
  return new ConcreatePrototype2(*this);
 }

};

int _tmain(int argc, _TCHAR* argv[])
{
 AbstractPrototype *pPrototype1 = new ConcreatePrototype1();
 AbstractPrototype *pPrototype2 = pPrototype1->Clone();

 AbstractPrototype *pPrototype3 = new ConcreatePrototype2();
 AbstractPrototype *pPrototype4 = pPrototype3->Clone();
 return 0;
}
//理解的不透彻  现在这个程序感觉原型模式必须有个虚基类提供个Clone方法 返回个类指针  派生类实现这个方法就OK了呢 
//随着学习 理解会更深刻  我会回来完善我的程序  各位大侠请帮忙点评

posted on 2011-12-25 22:01 柳清风 阅读(83) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


统计