public Character GetCharacter(char key) { // Uses "lazy initialization" Character character = null; if (_characters.ContainsKey(key)) { //このクラスの生存期間の中で、_characters変数が再利用される。 //TODO 「▼共通クラスのプロパティのライフサイクルとその使い方」 //Flyweightの実態は、_charactersこれと、これをホストしているこのクラス! //このクラスのインスタンスがたくさん生成されないことを前提に利用する。 character = _characters[key]; } else { switch (key) { case 'A': character = new CharacterA(); break; case 'B': character = new CharacterB(); break; case 'Z': character = new CharacterZ(); break; } //ない場合は生成される _characters.Add(key, character); } return(character); }
public Character GetCharacter(char key) { // Uses "lazy initialization" Character character = null; if (characters.ContainsKey(key)) { character = characters[key]; } else { switch (key) { case 'A': character = new CharacterA(); break; case 'B': character = new CharacterB(); break; // ... case 'Z': character = new CharacterZ(); break; default: character = null; break; } characters.Add(key, character); } return(character); }
private Character AddCharacterToDictionary(char key) { Character character = null; switch (key) { case 'A': { character = new CharacterA(); break; } case 'B': { character = new CharacterB(); break; } case 'Z': { character = new CharacterZ(); break; } } _characters.Add(key, character); return(character); }
public Character GetCharacter(char key) { // Uses "lazy initialization" Character character = null; if (this.characters.ContainsKey(key)) { character = this.characters[key]; } else { switch (key) { case 'A': character = new CharacterA(); break; case 'B': character = new CharacterB(); break; case 'Z': character = new CharacterZ(); break; } this.characters.Add(key, character); } return character; }
public Character GetCharacter(char key) { //Uses lazy inizialization Character character = null; if (this.characters.ContainsKey(key)) { character = this.characters[key]; } else { switch (key) { case Constants.SymbolA: character = new CharacterA(); break; case Constants.SymbolB: character = new CharacterB(); break; case Constants.SymbolZ: character = new CharacterZ(); break; } this.characters[key] = character; } return(character); }
// Use this for initialization void Start() { CharacterA characterA = new CharacterA("xiaoming"); CharacterB characterB = new CharacterB("lisi"); Weapon1 weapon1 = new Weapon1("weapon1"); Weapon2 weapon2 = new Weapon2("weapon2"); characterA.SetWeapon(weapon2); characterB.SetWeapon(weapon1); characterA.Attack(); characterB.Attack(); }
void ApplyResults() { var totalA = CharacterA.Strenght + RollA.Result; var totalB = CharacterB.Strenght + RollB.Result; damage = Math.Abs(totalA - totalB); if (totalA < totalB) { CharacterA.Hurt(damage); } else if (totalB < totalA) { AWins = true; CharacterB.Hurt(damage); } }
// Methods public Character GetCharacter( char key ) { // Uses "lazy initialization" Character character = (Character)characters[ key ]; if( character == null ) { switch( key ) { case 'A': character = new CharacterA(); break; case 'B': character = new CharacterB(); break; //... case 'Z': character = new CharacterZ(); break; } characters.Add( key, character ); } return character; }
private static ICharacter CreateCharacter(char Char) { ICharacter createdCharacter; switch (Char) { case 'A': createdCharacter = new CharacterA(); break; case 'B': createdCharacter = new CharacterB(); break; default: createdCharacter = new CharacterC(); break; } return(createdCharacter); }