[JAVA] C # gekautes Designmuster: TemplateMethod

Eines der in der Vergangenheit gelehrten Designmuster Muster der Ausgabevorlagenmethode (Kann falsch sein)

[Entwurfsmuster: Vorlagenmethode] (https://qiita.com/shoheiyokoyama/items/c2ce16b4f492cd014d50#abstract) Die Beschreibung erfolgt durch Ändern von JAVA in C # unter Bezugnahme auf.

Class1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Class1
{
    public abstract class AbstractDisplay
    {
        public abstract void Open();
        public abstract void Print();
        public abstract void Close();

        public void Display()
        {
            Open();
            for (int i = 0; i < 3; i++)
            {
                Print();
            }
            Close();
        }
    }
    public class CharDisplay : AbstractDisplay
    {
        char ch;
        public CharDisplay(char ch)
        {
            this.ch = ch;
        }

        public override void Open()
        {
            Console.Write("***");
        }

        public override void Print()
        {
            Console.Write(ch);
        }

        public override void Close()
        {
            Console.WriteLine("***");
        }
    }
    public class StringDisplay : AbstractDisplay
    {
        private string str;
        private int width;
        public StringDisplay(string str)
        {
            this.str = str;
            this.width = str.Length;
        }
        void PrintLine()
        {
            Console.Write("+");
            for (int i = 0; i < width; i++)
            {
                Console.Write("-");
            }
            Console.WriteLine("+");
        }

        public override void Open()
        {
            PrintLine();
        }

        public override void Print()
        {
            Console.WriteLine("|" + str + "|");
        }
        public override void Close()
        {
            PrintLine();
        }
    }
}

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            AbstractDisplay cd = new CharDisplay('T');
            cd.Display();
            AbstractDisplay sd = new StringDisplay("Design Pattern");
            sd.Display();

        }
    }
}

23/1

Recommended Posts

C # gekautes Designmuster: TemplateMethod
Entwurfsmuster ~ Vorlagenmethode ~
Entwurfsmuster nach Ruby Template-Methode Musternotiz
Muster der Vorlagenmethode
Muster der Vorlagenmethode
[Entwurfsmuster] Allgemeine Logik mit der Vorlagenmethode
C ++ - Entwurfsmuster (TemplateMethod-Muster)
Entwurfsmuster ~ Fabrikmethode ~
Überdenken des Java8-Lambda-Ausdrucks- und Stream-Entwurfsmusters - Muster der Vorlagenmethode -
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Entwurfsmuster ~ Builder ~
Entwurfsmuster ~ Besucher ~
Java-Entwurfsmuster
Entwurfsmuster ~ Proxy ~
Entwurfsmuster ~ Zustand ~
Factory Method Pattern
Entwurfsmuster ~ Strategie ~
Entwurfsmuster ~ Singleton ~
Entwurfsmuster (2): Builder
Entwurfsmuster (1): AbstractFactory
Entwurfsmuster ~ Befehl ~
Entwurfsmuster ~ Iterator ~
Entwurfsmuster ~ Fassade ~
Entwurfsmuster ~ Brücke ~
Entwurfsmuster ~ Mediator ~
Entwurfsmuster ~ Dekorateur ~
Entwurfsmuster ~ Interpreter ~
Factory Method Muster
Entwurfsmuster ~ Beobachter ~
Entwurfsmuster ~ Prototyp ~
Entwurfsmuster ~ Memento ~
Entwurfsmuster ~ Adapter ~
Entwurfsmuster ~ Fliegengewicht ~
Entwurfsmuster ~ Abstrakte Fabrik ~
Zusammenfassung des GoF-Entwurfsmusters
Zusammenfassung des Java-Entwurfsmusters
Punkt 51: Signaturen der Entwurfsmethode sorgfältig