设计模式- 之我见---创造性(phototype)
来源:互联网 发布:linux idea安装教程 编辑:程序博客网 时间:2024/04/30 09:54
/////////////////////////////////
/*对象创造型模式*/
/////////////////////////////////
#ifndef PT
#define PT
#include "stdafx.h"
class Mission
{
string name;
public:
string * Show();
Mission();
Mission(string );
Mission(Mission &);
Mission *Clone();
virtual~Mission();
};
class PhotoType;
class Client
{
public :
Client();
Client(Mission *);
virtual ~Client();
friend ostream & operator <<(ostream &,Client &);
//protected:
Client * operator()();
private:
string ShowSome();
Mission *m;
};
class PhotoType :public Client
{
public:
Client *Clone();
};
#endif
/////////////////////////////////
/*说明:
这里phototype是个照片
样的,把对象元素映下来,重新生
成更多的属性未赋值的新对象,
之后再交给其他模式加工*/
/*感觉很鸡肋*/
/////////////////////////////////
// PhotoType.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "PhotoType.h"
Mission::Mission()
{}
Mission::~Mission()
{
}
Client::Client()
{
}
Mission::Mission(string s)
{
name = s;
}
Mission::Mission(Mission &m)
{
this->name = m.name ;
}
Mission *Mission::Clone()
{
return new Mission(*this);
}
Client::Client(Mission *m)
{
this->m =m;
}
//Client * Client::operator()(){
//return new Client(p->MakeMission());}
Client::~Client()
{
if (m!=NULL)
delete m;
}
string * Mission::Show()
{
return &name;
}
string Client::ShowSome()
{
return *(m->Show());
}
ostream & operator <<(ostream &o,Client &c)
{
o<<c.ShowSome();
return o;
}
Client * Client::operator()()
{
return new Client(m);
}
Client *PhotoType::Clone()
{
return (*this)();
}
int _tmain(int argc, _TCHAR* argv[])
{
Client c(new Mission("asd"));
cout<<c;
//PhotoType p;
cout<<*c();
//p.Clone();
return 0;
}
- 设计模式- 之我见---创造性(phototype)
- 设计模式- 之我见---创造性(虚拟工厂)
- 设计模式之我见
- 设计模式之我见
- 设计模式之我见
- 设计模式之我见
- 设计模式 之我见
- 设计模式之我见
- 设计模式这扇窗之我见
- Singleton设计模式 - 创造性设计模式
- 设计模式之我见:外观模式
- 设计模式之我见:适配器模式
- 设计模式之我见--2 策略模式
- 设计模式之我见--3 装饰模式
- 设计模式之我见--4代理模式
- 设计模式之我见--6 原型模式
- 设计模式之我见-------单例模式
- 面向对象与设计模式之我见
- 定时执行sql存储过程
- mysql 中文乱码问题解决方法
- 股 市 运 作 原 理
- 三字经
- 如何才算掌握Java
- 设计模式- 之我见---创造性(phototype)
- 如何实现类似KTV中屏幕歌词显示
- 国学资料
- 理解dup和dup2
- 一首不错的网络歌曲 “在心里从此永远有个你”
- 人与人生
- JAVAFX:使用声明性语法
- Easyconnectionpool1.0
- GNU C中的零长度数组