단순factory
7703 단어 factory
//
class TypeBase
{
public:
TypeBase();
virtual ~TypeBase();
virtual void Speak() = 0;
};
TypeBase::TypeBase()
{
}
TypeBase::~TypeBase()
{
}
//
#include"typebase.h"
class IntType:public TypeBase
{
public:
IntType();
~IntType();
void Speak();
private:
int m_Buf;
};
#include "inttype.h"
#include<QDebug>
IntType::IntType()
{
m_Buf = 5000;
}
IntType::~IntType()
{
}
void IntType::Speak()
{
qDebug()<<m_Buf;
}
#include"typebase.h"
#include<QString>
class StrType:public TypeBase
{
public:
StrType();
~StrType();
void Speak();
private:
QString m_Buf;
};
#include "strtype.h"
#include<QDebug>
StrType::StrType()
{
m_Buf = "Hello,I am Type QString";
}
StrType::~StrType()
{
}
void StrType::Speak()
{
qDebug()<<m_Buf;
}
// ,
#include"typebase.h"
#include"strtype.h"
#include"inttype.h"
class TypeFactory
{
protected:
TypeFactory();
public:
static TypeFactory* GetInstance();
TypeBase *CreateType(QString typeName);
private:
static TypeFactory* m_Instance;
};
#include "typefactory.h"
TypeFactory* TypeFactory::m_Instance = 0;
TypeFactory::TypeFactory()
{
}
TypeFactory* TypeFactory::GetInstance()
{
if(0 == m_Instance)
m_Instance = new TypeFactory();
return m_Instance;
}
TypeBase* TypeFactory::CreateType(QString typeName)
{
if("INT" == typeName)
return new IntType();
else if("STRING" == typeName)
return new StrType();
else
return 0;
}
// :
TypeFactory *factory = TypeFactory::GetInstance();
TypeBase * type = factory->CreateType("INT");
type->Speak();
TypeBase * type2 = factory->CreateType("STRING");
type2->Speak();
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CXFf 클라이언트는 서버에 의존하고 서버에 의존하지 않는 두 가지 실현 방식참고: 서버에 의존하지 않을 때, 인터페이스의 구현 클래스는 @WebService에 테이블 공간을 추가해야 합니다. 그렇지 않으면 이상이 발생합니다. org.apache.cxf.common.i18n.Unchecked...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.