Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[作成途中]Unity設計勉強会 ポリモーフィズム編 / Unity Architecture...

Avatar for Ryo Yamamoto Ryo Yamamoto
September 05, 2019

[作成途中]Unity設計勉強会 ポリモーフィズム編 / Unity Architecture Polymophism

Avatar for Ryo Yamamoto

Ryo Yamamoto

September 05, 2019
Tweet

More Decks by Ryo Yamamoto

Other Decks in Programming

Transcript

  1. Date : 09/05 Time : 15:00~ Place: LiT! Osaka S.O.L.I.D

    Object Oriented Design Thurs 09/05
  2. Class Human{ public string name; public int age; } Class

    Game{ Human alex = new Human(); alex.name = “Alex”; alex.age = 22; } Human bob = new Human(); alex.name = “Bob”; alex.age = -20;
  3. Class Human{ private string name; private int age; public int

    GetAge(){
 return age; } public void SetAge(int input){
 if(input > 0){ age = input; }else{ age = 99; } }
  4. Class Human{ //লུ } Class Game{ Human alex = new

    Human(); alex.SetName(“Alex”); alex.SetAge(22); Debug.Log(“Alex age: ” + alex.getAge()); }
  5. Class Human{ private string name; private int age; public int

    GetAge(){
 return age; } public void SetAge(int input){
 if(input > 0){ age = input; }else{ age = 99; } }
  6. Class Human{ private int _age; public string Name{get; set;}; public

    int Age{ get{ return _age; } set{ _age = value > 0 ? value : 99; } } }
  7. Class Human{ //লུ } Class Game{ Human alex = new

    Human(); alex.SetName(“Alex”); alex.SetAge(22); Debug.Log(“Alex age: ” + alex.getAge()); }
  8. Class Human{ //লུ } Class Game{ Human alex = new

    Human(); alex.Name = “Alex”; alex.Age = 22; Debug.Log(“Alex age: ” + alex.Age); }
  9. Class Human{ //লུ public string Name{get; set;}; public int Age{get;

    set;}; } Class Mentor: Human{ public string Area{get; set;}; public int LdCourse{get; set;}; } Class Member: Human{ public string UsingServce{get; set} public int Course{get; set;}; }
  10. Class Game{ Human alex = new Human(); alex.Name = “Alex”;

    alex.Age = 22; Mentor candy = new Mentor(); candy.Name = “Candy”; candy.Age = 22; candy.Area = “Kansai”; candy.LdCource = 3; //Unityͷ͜ͱ }
  11. public enum litCourse{ iPhone, Android, Unity, WebDesign, WebService } Class

    Mentor: Human{ private litCourse _course; public litCourse LdCourse{get; set;} }
  12. Class Game{ Human alex = new Human(); alex.Name = “Alex”;

    alex.Age = 22; Mentor candy = new Mentor(); candy.Name = “Candy”; candy.Age = 22; candy.Area = “Kansai”; candy.LdCource = litCourse.Unity; }
  13. Class Human{ //লུ public string Name{get; set;}; public int Age{get;

    set;}; public int Enegy{get; set;}; //Eat Something public void Eat(){ } }
  14. Class Mentor: Human{ public void Eat(){ food.EatRedbull(); Enegy += 20;

    } } Class Member: Human{ public void Eat(){ food.EatHumburger(); Enegy += 8; } }
  15. Class Game{ Human alex = new Human(); Mentor candy =

    new Mentor(); Member drake = new Member(); alex.Eat(); drake.Eat(); }
  16. Class Game{ Human alex = new Human(); Mentor candy =

    new Mentor(); Member drake = new Member(); Mentor elisa = new Mentor(); alex.Eat(); drake.Eat(); elisa.Eat(); }
  17. Class Game{ Human alex = new Human(); Mentor candy =

    new Mentor(); Member drake = new Member(); Mentor elisa = new Mentor(); List<Mentor> mentorList = new List<Mentor>; mentorList.add(drake); }
  18. Class Game{ Human alex = new Human(); Human candy =

    new Mentor(); Human drake = new Member(); Human elisa = new Mentor(); List<Human> mentorList = new List<Human>; mentorList.add(drake); }
  19. Class Game{ //alex͔Βelisa·ͰΛ࡞ͬͨ List<Human> mentorList = new List<Human>; mentorList.add(alex); //ਓؒ

    mentorList.add(bob); mentorList.add(candy); //ϝϯλʔ mentorList.add(drake); //ϝϯόʔ }
  20. Class Human{ //লུ public string Name{get; set;}; public int Age{get;

    set;}; public int Enegy{get; set;}; //Eat Something public virtual void Eat(){ } }
  21. abstract Class Human{ //লུ public string Name{get; set;}; public int

    Age{get; set;}; public int Enegy{get; set;}; //Eat Something public abstract void Eat(); }
  22. Class Mentor: Human{ public override void Eat(){ food.EatRedbull(); Enegy +=

    20; } } Class Member: Human{ public override void Eat(){ food.EatHumburger(); Enegy += 8; } }