精品偷拍一区二区三区,亚洲精品永久 码,亚洲综合日韩精品欧美国产,亚洲国产日韩a在线亚洲

  • <center id="usuqs"></center>
  • 
    
  • \定義一個(gè)抽象類Shape,它有兩個(gè)抽象的方法area()和perimeter(),分別表示求面積和周長.

    \定義一個(gè)抽象類Shape,它有兩個(gè)抽象的方法area()和perimeter(),分別表示求面積和周長.
    數(shù)學(xué)人氣:118 ℃時(shí)間:2020-05-04 10:52:27
    優(yōu)質(zhì)解答
    簡單工廠模式?
    我之前做了個(gè)簡易計(jì)算器的簡單工廠模式,效果與你這個(gè)是一樣的~~~~
    你的抽象類Shape里面的方法area()和perimeter(),可以參考的計(jì)算器的GetResult()
    都是虛方法(使用virtual 關(guān)鍵字),然后在計(jì)算面積、周長的子類中分別重寫(override關(guān)鍵字)就是了~~~~~~~~~

    具體的你看我的簡易計(jì)算器工程模式 代碼:
    C# 簡單工廠之簡易計(jì)算器
    總共三個(gè)類:Operation.csOperationFactory.csProgram.cs
    Operation.cs兩個(gè)操作數(shù),一個(gè)運(yùn)算的虛方法GetResult(),該方法得出運(yùn)算結(jié)果
    加減乘除 四個(gè)運(yùn)算類,每個(gè)類繼承于Operation.cs,每個(gè)類都有一個(gè)GetResult()方法
    ,子類的GetResult()用于實(shí)現(xiàn)具體的加減乘除運(yùn)算~~~~~~~~
    OperationFactory.cs實(shí)例化 加減乘除 四個(gè)運(yùn)算類~~~~~
    Program.cs 里面是main()調(diào)用運(yùn)算類~~~~~
    Operation.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace FactoryPattern
    {
    ///
    /// 運(yùn)算類
    ///
    public class Operation
    {
    #region 運(yùn)算類,包含兩個(gè)操作數(shù),一個(gè)虛的運(yùn)算方法
    private double _numberA = 0;
    ///
    /// 操作數(shù)A
    ///
    public double NumberA
    {
    get { return _numberA; }
    set { _numberA = value; }
    }
    private double _numberB = 0;
    ///
    /// 操作數(shù)B
    ///
    public double NumberB
    {
    get { return _numberB; }
    set { _numberB = value; }
    }
    #region 虛方法,得到運(yùn)算結(jié)果
    public virtual double GetResult()
    {
    double result = 0;
    return result;
    }
    #endregion
    #endregion
    }
    ///
    /// 加法類:繼承于運(yùn)算類
    ///
    public class OperationAdd : Operation
    {
    public override double GetResult()
    {
    double result = 0;
    result = NumberA + NumberB;
    return result;
    }
    }
    ///
    ///減法類:繼承于運(yùn)算類
    ///
    public class OperationSub : Operation
    {
    public override double GetResult()
    {
    double result = 0;
    result = NumberA - NumberB;
    return result;
    }
    }
    ///
    /// 乘法類:繼承于運(yùn)算類
    ///
    public class OperationMul : Operation
    {
    public override double GetResult()
    {
    double result = 0;
    result = NumberA * NumberB;
    return result;
    }
    }
    ///
    /// 除法類:繼承于運(yùn)算類
    ///
    public class OperationDiv : Operation
    {
    public override double GetResult()
    {
    double result = 0;
    if (NumberB==0)
    {
    throw new Exception("除數(shù)不能為零!");

    }
    else
    {
    result = NumberA / NumberB;
    return result;
    }

    }
    }
    #region 簡單工廠模式結(jié)論
    /* 若要實(shí)現(xiàn)復(fù)雜的運(yùn)算,比如開根號、自然對數(shù)、求正余弦等等,
    * 只需要:
    * (1)增加相應(yīng)的運(yùn)算子類
    * (2)在工廠的switch子句中添加相應(yīng)復(fù)雜運(yùn)算的分支
    *就OK了
    */
    #endregion
    }
    OperationFactory.cs
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace FactoryPattern
    {
    public class OperationFactory
    {
    ///
    /// 根據(jù)相應(yīng)的運(yùn)算符號,工廠就實(shí)例化出合適的運(yùn)算對象
    ///
    /// 加減乘除等運(yùn)算符號
    ///
    public static Operation createOperation(string operationType)
    {
    Operation operation = null;
    //分別實(shí)例化具體的 加減乘除 運(yùn)算類~~~~~~~~~
    switch (operationType)
    {
    case "+":
    operation = new OperationAdd();
    break;
    case "-":
    operation = new OperationSub();
    break;
    case "*":
    operation = new OperationMul();
    break;
    case "/" :
    operation = new OperationDiv();
    break;
    default:
    operation = new Operation();
    break;
    }
    return operation;
    }
    }
    }
    Program.cs
    調(diào)用~~~~~
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    namespace FactoryPattern
    {
    class Program
    {
    static void Main(string[] args)
    {
    double result = 0;
    string operationType = "+";
    Operation oper = null;
    // 【傳入運(yùn)算符,工廠實(shí)例化創(chuàng)造一個(gè)相應(yīng)的運(yùn)算對象】
    oper = OperationFactory.createOperation(operationType);
    oper.NumberA = 1;
    oper.NumberB = 5;
    // 【經(jīng)過多態(tài),返回父類的方式,實(shí)現(xiàn)計(jì)算結(jié)果】
    result = oper.GetResult();
    Console.WriteLine(result);
    operationType = "-";
    oper = OperationFactory.createOperation(operationType);
    oper.NumberA = 1;
    oper.NumberB = 5;
    result = oper.GetResult();
    Console.WriteLine(result);
    operationType = "*";
    oper = OperationFactory.createOperation(operationType);
    oper.NumberA = 1;
    oper.NumberB = 5;
    result = oper.GetResult();
    Console.WriteLine(result);
    operationType = "/";
    oper = OperationFactory.createOperation(operationType);
    oper.NumberA = 1;
    oper.NumberB = 5;
    result = oper.GetResult();
    Console.WriteLine(result);
    Console.ReadKey();
    }
    }
    }
    我來回答
    類似推薦
    請使用1024x768 IE6.0或更高版本瀏覽器瀏覽本站點(diǎn),以保證最佳閱讀效果。本頁提供作業(yè)小助手,一起搜作業(yè)以及作業(yè)好幫手最新版!
    版權(quán)所有 CopyRight © 2012-2024 作業(yè)小助手 All Rights Reserved. 手機(jī)版