日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]一個形狀基類.. 一個圓 一個矩形。。。 一個工廠根據(jù)參數(shù)返回形狀子類 老掉牙的類名..英文不好...——————————————-java——————————————————- 形狀基類packag

一個形狀基類..
一個圓
一個矩形。。。
一個工廠根據(jù)參數(shù)返回形狀子類
老掉牙的類名..英文不好...

——————————————-java——————————————————-
形狀基類

package?com.shiji.gongchang;

public?interface?XingZhuang?{

????????void???Run();
}
package?com.shiji.gongchang;

//圓形類?繼承自形狀
public?class?Circle??implements?XingZhuang?{

????@Override
????public?void?Run()?{
????????//?TODO?Auto-generated?method?stub
????????System.out.println("Im?Cirlce!");

????}

}
package?com.shiji.gongchang;
//矩形類??繼承自形狀
public?class?Rectangle?implements?XingZhuang?{

????@Override
????public?void?Run()?{
????????//?TODO?Auto-generated?method?stub
????????System.out.println("Rectangle!");
????}


}

工廠

package?com.shiji.gongchang;

public?class?XingZhuangFactory?{

????public?XingZhuang?CreateXingzhuang(String?obj)
????{

????????????if(obj=="矩形")
????????????{
????????????????return??new?Rectangle();
????????????}else?if?(obj=="圓")?{
????????????????return?new?Circle();

????????????}

????????????return?null;

????}
}
測試

//工廠模式
public?class?GongChangMoshi?{

????public?static?void?main(String[]?args)?{
????????XingZhuangFactory??xingZhuangFactory??=??new?XingZhuangFactory();
????????xingZhuangFactory.CreateXingzhuang("矩形").Run();
????????xingZhuangFactory.CreateXingzhuang("圓").Run();
????}
????//靜態(tài)方法?加載C++類庫??test.dll
????static?{
?????????System.loadLibrary("JniTest");
????}
}

——————————————-C++——————————————————-
形狀基類

#pragma?once
class?Xingzhuang
{
public:
????virtual?void?Run()=0;
????Xingzhuang();
????~Xingzhuang();
};

圓…

#pragma?once
#include?"Xingzhuang.h"
class?Circle?:public?Xingzhuang
{
public:
????virtual?void?Run();
????Circle();
????~Circle();
};

cpp:
#include?"stdafx.h"
#include?"Circle.h"


Circle::Circle()
{
}


Circle::~Circle()
{
}



void?Circle::Run()
{
????printf("Im?Circle~!");
}

方塊,…

#pragma?once
#include?"Xingzhuang.h"
class?Rectangle??:public?Xingzhuang
{
public:
????virtual?void?Run();
????Rectangle();
????~Rectangle();
};


cpp:
#include?"stdafx.h"
#include?"Rectangle.h"


Rectangle::Rectangle()
{
}


Rectangle::~Rectangle()
{
}



void?Rectangle::Run()
{
????printf("Im?Rectangle!");
}

工廠 ? ? ? ? ? ? ? ? ? ?-,-

#pragma?once
#include?"Xingzhuang.h"
enum?_Xtype
{
????_rectangle=0,
????_circle=1
};
class?Factory
{
public:
????Factory();
????Xingzhuang*??Create(_Xtype??t);
????~Factory();
};

cpp:
#include?"stdafx.h"
#include?"Factory.h"
#include?"Circle.h"
#include?"Rectangle.h"

Factory::Factory()
{
}


Factory::~Factory()
{
}



Xingzhuang*??Factory::Create(_Xtype??t)
{

????if?(t==_Xtype::_rectangle)
????{
????????Rectangle*??p?=?new?Rectangle();
????????return?p;
????}else?if?(t==_Xtype::_circle)
????{
????????Circle*p?=?new?Circle();
????????return?p;
????}
????return?NULL;
}

demo:

#include?"stdafx.h"
#include?"Factory.h"?


inline?void?test(_Xtype??t)
{
????Factory*?f?=?new?Factory();
????if?(f)
????{
????????Xingzhuang*?x?=?NULL;
????????x?=?f->Create(t);
????????if?(x)
????????{
????????????x->Run();
????????????delete?x;
????????}
????????delete?f;
????}


}
int?main()
{?
????test(_Xtype::_circle);
????test(_Xtype::_rectangle);
????return?0;
}
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉