的思路去設(shè)計程序:
1,定義一個抽象類或者接口,表示圖形,其中包含2個方法:求面積和求周長
2,定義具體類實現(xiàn)這個接口或繼承這個抽象類,實現(xiàn)其中定義的函數(shù).
3,調(diào)用的時候,定義這個接口類型或抽象類對象,然后根據(jù)實例化的不同子類,來調(diào)用不同的方法,——即類的多態(tài)性.
比如,我下面用接口來實現(xiàn):
interface IDraw
{
float Area();
float Round();
}
class Square :IDraw
{
private float _x;
public Square(float x)
public float Area()
public float Round()
}
class Rectangle :IDraw
{
private float _x,_y;
public Rectangle(float x,float y)
public float Area()
public float Round()
}
class Triangle :IDraw
{
// 類似上面的定義
}
void Main()
{
IDraw draw;
draw = new Square(5);
draw.Area(); // 計算正方形面積
draw = new Rectangle(5,10);
draw.Area(); // 計算長方形面積
draw = new Triangle(5,10);
draw.Area(); // 計算三角形面積
}
多態(tài)性的好處很明顯,方便以后擴充功能,且不影響原有的功能,你再加入橢圓形,菱形等,都只要定義新的類實現(xiàn)IDraw即可.
在調(diào)用方也實現(xiàn)了統(tǒng)一的接口,不管什么圖形,都是用Area()和Round()去算面積和周長.
另外,如果再進一步考慮增強調(diào)用方的可維護性,可以使用設(shè)計模式IOC/DI,也就是控制反轉(zhuǎn)/依賴注入,在配置文件中配置當前需要實例化的類,然后使用反射加載對應(yīng)的類,實例化對象,并調(diào)用其方法.
關(guān)于涉及模式DI,請參考martin.fowler的文章
用C#中方法的重載,求圓面積、長方形面積、三角形面積.
用C#中方法的重載,求圓面積、長方形面積、三角形面積.
數(shù)學(xué)人氣:844 ℃時間:2020-06-12 06:05:07
優(yōu)質(zhì)解答
我來回答
類似推薦
- 編寫一個程序 ,采用方法重載分別實現(xiàn)圓、三角形、矩形、橢圓的面積計算
- 一個三角形的面積告訴你求圓面積怎么求
- 三角形的最小覆蓋圓面積求法
- 如圖圓中的陰影部分面積占圓面積的16,占長方形面積的15;三角形中陰影部分面積占三角形面積的19,占長方形面積的14.則圓、長方形、三角形的面積比( ?。?A.24:20:45 B.12:10:22 C.48
- 把圓轉(zhuǎn)化為三角形,圓面積公式是什么?
- 多項式
- 描寫樹的形容詞(可以是描寫它的品質(zhì) 精神 也可以是樣子)
- 在動物體內(nèi)糖原和脂肪都是儲能物質(zhì),但為什么是脂肪作為主要的儲能物質(zhì)呢?
- 0.3比0.45比0.1 4比6比16
- 在某塔塔底所在平面上一點仰角為a,由此點向塔直走30米后,測得仰角為2a,再沿直線走15(根號3—1)米后,又
- 12和20這兩個數(shù)的最大公因數(shù)是,最小公倍數(shù)是
- 如圖,在△ABC中,AC=BC,D是BC上的一點,且滿足∠BAD=1/2∠C,以AD為直徑的⊙O與AB、AC分別相交于點E、F. (1)求證:直線BC是⊙O的切線;(2)連接EF,若tan∠AEF=4/3,AD=4,求BD的長.
猜你喜歡
- 1已知a小于0,負b大于0,且負b的絕對值小于a的絕對值,c是負b的相反數(shù),試比較a,負b,c的大小,并用小于號連接.
- 2your performance是什么意思?
- 3英語同義句I spend an hour reading English every day
- 4青蛙是怎樣發(fā)聲的?
- 5錯在課外閱讀 作文 按要求寫句子
- 6已知向量a=(sinωx+cosωx,sinωx),向量b=(sinωx-cosωx,2√3cosωx)
- 7六(2)班第一次數(shù)學(xué)測試,及格的有48人,不及格的有2人.則這次數(shù)學(xué)測試的及格率為_.
- 8甲乙丙丁4個數(shù)都能不是0,甲除乙是0.5,丁除乙是1.1,丙除0.4等于乙,甲除1.25等于丙,比較甲乙丙丁大小
- 9如圖,已知空間四邊形ABCD,E,F(xiàn)分別是AB,AD的中點,G,H分別是BC,CD上的點,且BG/GC=DH/HC=2,求證:EG,F(xiàn)H,AC相交于同一點P.
- 10How are you feeling now? I'm feeling even ____.
- 11為了鼓勵人們節(jié)約用水,思源市今年四月份頒布了居民用水收費新標準,具體收費標準如下:
- 12家里人都在看電視,只有我一人在寫作業(yè).(修改病句)