2023-11-16

anond:20231116115013

お前のいう通り書いたったわ(C#だが)。

非常に稚拙コードで悪いが。

八百万の神スーパークラスがある場合

//宇宙
namespace Universe
{
    //あらゆる神の根底存在する唯一神とその司る運(スーパークラス)
    public class GodLuck
    {
        public string Name { get; }   //神の名前
        public string Power { get; }  //神の力
        public string Plan { get; }   //神の計画
        public string Factor { get; } //運の要因

        public GodLuck(string name, string power, string plan, string factor)
        {
            Name = name;     //神の名前
            Power = power;   //神の力
            Plan = plan;     //神の計画
            Factor = factor; //運の要因
        }

        //神が何かを創造するメソッド
        public void Create(string thing)
        {
            Console.WriteLine($"{Name} created {thing}.");
        }

        //神が何かに対して支配や介入をするメソッド
        public void Control(string thing, string action)
        {
            Console.WriteLine($"{Name} {action} {thing}.");
        }

        //運が何かに対して影響を与えるメソッド
        public void Affect(string thing, string outcome)
        {
            Console.WriteLine($"{Name} affected {thing} and the outcome was {outcome}.");
        }
    }

    //恵比須様
    public class EbisuSama : GodLuck
    {
        public EbisuSama()
            : base("恵比須様",
                   "商売繁盛や五穀豊穣の力",
                   "人々に幸せを与える計画",
                   "商売繁盛や五穀豊穣の要因")
        {
        }

        //作物を守る
        public void Save(string crops)
        {
            Control(crops, "守る");
        }

        //人間成功させる
        public void MakeSuccessful(string person)
        {
            Affect(person, "成功");
        }
    }
}

↓IGodLuckというインターフェース実装した場合

(大いなる力を別のクラス移譲したくなったが、神と大いなる力は同一のオブジェクトという要件があるからやめた)

//宇宙
namespace Universe
{
    //神の振る舞いを定義したインターフェイス
    public interface IGodLuck
    {
        public string Name { get; }
        public string Power { get; }
        public string Plan { get; }
        public string Factor { get; }

        //神が何かを創造するメソッド
        public void Create(string thing);

        //神が何かに対して支配や介入をするメソッド
        public void Control(string thing, string action);

        //運が何かに対して影響を与えるメソッド
        public void Affect(string thing, string outcome);
    }

    //恵比須様
    public class EbisuSama : IGodLuck
    {
        public string Name { get; }   //神の名前
        public string Power { get; }  //神の力
        public string Plan { get; }   //神の計画
        public string Factor { get; } //運の要因

        public EbisuSama()
        {
            Name = "恵比須様";                   //神の名前
            Power = "商売繁盛や五穀豊穣の力";    //神の力
            Plan = "人々に幸せを与える計画";     //神の計画
            Factor = "商売繁盛や五穀豊穣の要因"; //運の要因
        }

        //神が何かを創造するメソッド
        public void Create(string thing)
        {
            Console.WriteLine($"{Name} created {thing}.");
        }

        //神が何かに対して支配や介入をするメソッド
        public void Control(string thing, string action)
        {
            Console.WriteLine($"{Name} {action} {thing}.");
        }

        //運が何かに対して影響を与えるメソッド
        public void Affect(string thing, string outcome)
        {
            Console.WriteLine($"{Name} affected {thing} and the outcome was {outcome}.");
        }

        //物を守る
        public void Save(string thing)
        {
            Control(thing, "守る");
        }

        //人間成功させる
        public void MakeSuccessful(string person)
        {
            Affect(person, "成功");
        }
    }
}
記事への反応 -
  • 世界中の全ての人が持ってる共通の思念が所謂「神」。 そういう意味では中立なのかも。

    • ぜんぜん中立じゃないぞ、日本は八百万の神がいる世界 万物に神が宿り、万物が神になる世界なので、神が人や世界を支配しない   西洋宗教において神と運は別のオブジェクトだが、...

      • それでも八百万の神のスーパークラスはあるんじゃない? それともIGodってインターフェースを実装してるだけ?

        • 増田のいう"それでも"がよくわからんでおじゃる 雑でいいので具体的にコードで書くと?

          • あんなギョロ目で舌だして手を挙げてるおじさんにも優しい世界だから、大丈夫。(anond:20231116114902) いいからコードで書いて。もしくはbingちゃんを誘導して書いて貰って

            • お前のいう通りC#で書いたったわ。 非常に稚拙なコードで悪いが。 ↓八百万の神のスーパークラスがある場合 //宇宙namespace Universe{ //あらゆる神の根底に存在する唯一神とその司る運(...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん