public string MakePassword(int count, ILetterFactory factory) //MakePasswordに引数を持たせることで継承してくるインスタンスを指定する。変数factoryを用意してそこに { string password = string.Empty; //各子クラスのメソッドを呼び出している //Letter letter = new NumLetter(random); //継承なので親クラスの型を持つ変数に子クラスのインスタンスを格納できる //password += letter.GetLetter(); //このGetLetterは親クラスのもの? //letter = new LowerLetter(random); //password += letter.GetLetter(); //letter = new UpperLetter(random); //password += letter.GetLetter(); //letter = new MarkLetter(random); //password += letter.GetLetter(); for (int i = 0; i < count; i++) { //AllLetterFactory factory = new AllLetterFactory(); //AllLetterFactoryを呼び出す //NonMarkLetterFactory factory = new NonMarkLetterFactory(); //NonMarkLetterFactoryを呼び出す Letter letter = factory.Create(random, i); password += letter.GetLetter(); } //Shuffle shuffle = new Shuffle(); //return Shuffle.Execute(password); return(ArrangeEnd.Execute(Shuffle.Execute(password))); //ランダム配列の呼び出しした上で末尾を記号にする }
public string MakePassword(int count, ILetterFactory factory) { var password = string.Empty; for (var i = 0; i < count; i++) { Letter letter = factory.Create(_random, i); password += letter.GetLetter(); } return(Shuffle .Execute(password)); }