C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#を使用してOpen Closedの原則を実装するにはどうすればよいですか?


クラス、モジュール、関数などのソフトウェアエンティティは、拡張のために開いている必要がありますが、変更のために閉じている必要があります。

定義 − Open Close Principleは、コードの設計と記述は、既存のコードに最小限の変更を加えて新しい機能を追加する方法で行う必要があると述べています。設計は、既存のコードを可能な限り変更せずに、新しいクラスとして新しい機能を追加できるようにする必要があります。

オープンクローズ原則の前のコード

using System;
using System.Net.Mail;
namespace SolidPrinciples.Open.Closed.Principle.Before{
   public class Rectangle{
      public int Width { get; set; }
      public int Height { get; set; }
   }
   public class CombinedAreaCalculator{
      public double Area (object[] shapes){
         double area = 0;
         foreach (var shape in shapes){
            if(shape is Rectangle){
               Rectangle rectangle = (Rectangle)shape;
               area += rectangle.Width * rectangle.Height;
            }
         }
         return area;
      }
   }
   public class Circle{
      public double Radius { get; set; }
   }
   public class CombinedAreaCalculatorChange{
      public double Area(object[] shapes){
         double area = 0;
         foreach (var shape in shapes){
            if (shape is Rectangle){
               Rectangle rectangle = (Rectangle)shape;
               area += rectangle.Width * rectangle.Height;
            }
            if (shape is Circle){
               Circle circle = (Circle)shape;
               area += (circle.Radius * circle.Radius) * Math.PI;
            }
         }
         return area;
      }
   }
}

OpenClosed原則の後のコード

namespace SolidPrinciples.Open.Closed.Principle.After{
   public abstract class Shape{
      public abstract double Area();
   }
   public class Rectangle: Shape{
      public int Width { get; set; }
      public int Height { get; set; }
      public override double Area(){
         return Width * Height;
      }
   }
   public class Circle : Shape{
      public double Radius { get; set; }
      public override double Area(){
         return Radius * Radius * Math.PI;
      }
   }
   public class CombinedAreaCalculator{
      public double Area (Shape[] shapes){
         double area = 0;
         foreach (var shape in shapes){
            area += shape.Area();
         }
         return area;
      }
   }
}

  1. Java 9でJavaFXを使用してJShellを実装するにはどうすればよいですか?

    JShell サンプル式を実装するために使用されるインタラクティブなツールです。 JavaFXを使用してプログラムでJShellを実装できます アプリケーションの場合、以下にリストされているJavaプログラムにいくつかのパッケージをインポートする必要があります import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet; 以下の例では、サンプルのJavaFXアプリケーションを実装しました。 テキストフィールドにさまざまな値を入力します 「評価」を押します 「」ボタン。対応する

  2. Tkinterを使用して外部プログラムを開く方法は?

    アプリケーションの作成中に、外部のプログラムやアプリケーションとやり取りする必要がある場合があります。システムのアプリケーションやプログラムと対話するには、 osを使用する必要があります Pythonのモジュール。 この記事では、PythonのOSモジュールを使用して外部プログラムやオープンファイルを操作する方法を説明します。 まず、ファイルダイアログを使用して選択したファイルを開く関数を定義します Pythonのライブラリ。次に、パスを印刷し、 osを使用してファイルを開きます モジュール。 例 # Import the required Libraries from tkinter i