際際滷

際際滷Share a Scribd company logo
Design principles
弌仍舒弍舒 于磶舒仆仆仂 亳 从亳亠亳亳
     仂仂亠亞仂 亟亳亰舒亶仆舒
丶亠仍亳 仗仂亠从亳仂于舒仆亳
亠亠亟 仗仂亠从仂仄
舒 亟亠仆 亟仂 亠仍亳亰舒
丼仂 仗仂仍仂 仆亠 舒从?
 亠仄 亠仄亳仄
   亳弍从仂
   舒亟亠亢仆仂
   仂仄仗仂仆亠仆仆仂
   丼亳亶 亳 仗仂仆仆亶 从仂亟
   亳亰舒仍亳亰舒亳
S.O.L.I.D.
Single Responsibility Principle
 仍舒 亟仂仍亢亠仆 亳仄亠 仍亳 仂亟仆
  于仂亰仄仂亢仆 仗亳亳仆 亟仍 亳亰仄亠仆亠仆亳亶.
Demo
 SRP violation
Open/Close Principle
 仍舒 仂从 亟仍 舒亳亠仆亳
   仆仂于仂亠 仗仂于亠亟亠仆亳亠 仄仂亢亠 亟仂弍舒于亳 于 弍亟亠仄




 舒从 亟仍 仄仂亟亳亳从舒亳亳
   亳亰仄亠仆亠仆亳 于 从仂亟 从仍舒舒 仆亠 亟仂仗从舒ム
Demo
 OCP violation
舒从 仂 亟亠仍舒?
 舒舒仄亠
   仍礆弍亟舒/亟亠仍亠亞舒


 舒仍亠亟仂于舒仆亳亠
   亟仂亠仆亳亠 从仍舒 仗亠亠仂仗亠亟亠仍ム 仗仂于亠亟亠仆亳亠 仂亟亳亠仍从仂亞仂
    从仍舒舒


 仂仄仗仂亰亳亳/Strategy
   仗亠亠亟舒亠仄 舒弍舒从亳
   亳仗仂仍亰亠仄 仂 从仍舒 于 亠于ム亠仄 亟仍 亠舒仍亳亰舒亳亳
    舒亳亠仆亳亶
Liskov Substitution Principle
 仂亟亳仗 亟仂仍亢仆 弍 亰舒仄亠仆磳仄
  弍舒亰仂于仄亳 亳仗舒仄亳
Liskov Substition Principle
 Is  a
 Is  substitutable  for

 仂亠仆亳亠 从仍舒 仆亠 亟仂仍亢仆 仆舒舒
  仗仂于亠亟亠仆亳 仂亟亳亠仍从亳 从仂仆舒从仂于 (仗亠亟-
  仍仂于亳 亳 仗仂-仍仂于亳)
Liskov Substitution Principle
 LSP violation
Liskov Substitution Principle
 弌仂亰亟舒亠仄 仆仂于亶 从仍舒
   亟于舒 从仍舒舒 亟亠仍 仆从亳仂仆舒仍仆仂, 仆仂 仆亠 亰舒仄亠仆磳仄
   仄仂亢仆仂 仂亰亟舒 3 从仍舒 仂 从仂仂仂亞仂 仗仂仆舒仍亠亟仂于舒 亳
    亟于舒 从仍舒
   丕弍亠亟亳 仂 从仍舒 仆舒仍亠亟仆亳从亳 亳 仂亟亳亠仍
    亰舒仄亠仆磳仄
Interface Segregation Pinciple
 亳仆亳仗 舒亰亟亠仍亠仆亳 亳仆亠亠亶仂于
   仍亳亠仆 仆亠 亟仂仍亢仆 亰舒于亳亳 仂 仄亠仂亟仂于
    从仂仂亠 仂仆亳 仆亠 亳仗仂仍亰ム
Interface Segregation Principle
 亳仆 舒弍舒从亳 于 仆舒仍亠亟仂于舒仆亳亳
 束亳仆亶損 亳仆亠亠亶
Interface Segregation Principle
Dependency Inversion Principle
 仂亟仍亳 于亠仆亠亞仂 仂于仆 仆亠 亟仂仍亢仆
  亰舒于亳亠 仂 仄仂亟仍亠亶 仆亳亢仆亠亞仂 仂于仆. 弍舒
  亟仂仍亢仆 亰舒于亳亠 仂 舒弍舒从亳亳.

 弍舒从亳亳 仆亠 亟仂仍亢仆 亰舒于亳亠 仂 亟亠舒仍亠亶.
  亠舒仍亳 亟仂仍亢仆 亰舒于亳亠 仂 舒弍舒从亳亶.
Design principles
舒于亳亳仄仂亳
   仆亠仆亳亠 弍亳弍仍亳仂亠从亳
   舒亰舒 亟舒仆仆
   弌舒亳亠从亳亠 仄亠仂亟
   New keyword
   弌亠亠于亠 于亰舒亳仄仂亟亠亶于亳
   System Clock
   Random
舒于亳亳仄仂亳 从仍舒舒
 仂仆从仂 从仍舒舒 亟仂仍亢亠仆 从舒亰于舒
  亰舒于亳亳仄仂亳 于 从仂仂 仂仆 仆亢亟舒亠 (磦仆亠
  亰舒于亳亳仄仂亳)
 舒仍仆亠 从仍舒 舒弍仂舒ム 仂 从仄亳
  亰舒于亳亳仄仂礆亳
Demo
 DIP violation
Dependency Injection

 丐亠仆亳从舒 从仂亞亟舒 于亰于舒ム亳亶 从仍舒 仗仂舒于仍磳(to inject)
  亰舒于亳亳仄仂亳 于亰于舒亠仄仂仄 从仍舒


 3 仂仆仂于仆 仗仂仂弍舒:
    丼亠亠亰 从仂仆从仂
    丼亠亠亰 于仂亶于仂
    丼亠亠亰 仗舒舒仄亠
Constructor Injection
 舒
   亠从仂 于亟仆 亰舒于亳亳仄仂亳 从仍舒舒
   仄仂亢仆仂 舒弍仂舒 从舒从  从仂仆亠亶仆亠仂仄 舒从 亳 弍亠亰
   从仍舒 于亠亞亟舒 于 于舒仍亳亟仆仂仄 仂仂礌亳亳 仗仂仍亠 仂亰亟舒仆亳
 仂亳于
   仄仂亢亠 弍 仄仆仂亞仂 仗舒舒仄亠仂于 于 从仂仆从仂亠 (ds)
   仆亠 于亠仄 仄亠仂亟舒仄 仆亢仆 仗亠亠亟舒仆仆亠 仗舒舒仄亠 (ds)
   亳仆仂亞亟舒 仆亢亠仆 从仂仆从仂 弍亠亰 仗舒舒仄亠仂于
Property Injection
 舒
   亰舒于亳亳仄仂 仄仂亢仆仂 仗亠亠亟舒 于 仍ミ頴笑 仄仂仄亠仆
   仂亠仆 亞亳弍从仂


 仂亳于
   弍亠从 仄仂亢亠 弍 于 仆亠舒弍亳仍仆仂 仂仂礌亳亳 亠仍亳 从舒从舒-仂
    亳亰 亰舒于亳亳仄仂亠亶 仆亠 仗亠亠亟舒仆舒
   仄亠仆亠亠 磦仆仂
Parameter Injection
 舒
   亠 仆亢仆仂 仄亠仆 于亠 从仍舒
   仂亠仆 亞亳弍从仂


 仂亳于
   仗舒亠 亳亞仆舒 仄亠仂亟舒
   仄仆仂亞仂 仗舒舒仄亠仂于 (ds)
Demo
亟亠 仂亰亟舒于舒 仂弍亠从?
 仂仆从仂 仗仂 仄仂仍舒仆亳 弍亠亰 仗舒舒仄亠仂于 (poor mans ioc)
 composition root
 IoC container
IoC Container
   仆亳亳舒仍亳亰亳ム 亞舒 仂弍亠从仂于
   亠亞亳亳ム 亳仗 仂弍亠从仂于
   舒亰亠舒ム 亳仗 仂弍亠从仂于
   仂亢仆仂 亳仗仂仍亰仂于舒 从舒从 从仂亟 舒从 亳 从仂仆亳亞舒亳
Harlem Shake!

More Related Content

Design principles

  • 2. 弌仍舒弍舒 于磶舒仆仆仂 亳 从亳亠亳亳 仂仂亠亞仂 亟亳亰舒亶仆舒
  • 5. 舒 亟亠仆 亟仂 亠仍亳亰舒
  • 7. 亠仄 亠仄亳仄 亳弍从仂 舒亟亠亢仆仂 仂仄仗仂仆亠仆仆仂 丼亳亶 亳 仗仂仆仆亶 从仂亟 亳亰舒仍亳亰舒亳
  • 9. Single Responsibility Principle 仍舒 亟仂仍亢亠仆 亳仄亠 仍亳 仂亟仆 于仂亰仄仂亢仆 仗亳亳仆 亟仍 亳亰仄亠仆亠仆亳亶.
  • 11. Open/Close Principle 仍舒 仂从 亟仍 舒亳亠仆亳 仆仂于仂亠 仗仂于亠亟亠仆亳亠 仄仂亢亠 亟仂弍舒于亳 于 弍亟亠仄 舒从 亟仍 仄仂亟亳亳从舒亳亳 亳亰仄亠仆亠仆亳 于 从仂亟 从仍舒舒 仆亠 亟仂仗从舒ム
  • 13. 舒从 仂 亟亠仍舒? 舒舒仄亠 仍礆弍亟舒/亟亠仍亠亞舒 舒仍亠亟仂于舒仆亳亠 亟仂亠仆亳亠 从仍舒 仗亠亠仂仗亠亟亠仍ム 仗仂于亠亟亠仆亳亠 仂亟亳亠仍从仂亞仂 从仍舒舒 仂仄仗仂亰亳亳/Strategy 仗亠亠亟舒亠仄 舒弍舒从亳 亳仗仂仍亰亠仄 仂 从仍舒 于 亠于ム亠仄 亟仍 亠舒仍亳亰舒亳亳 舒亳亠仆亳亶
  • 14. Liskov Substitution Principle 仂亟亳仗 亟仂仍亢仆 弍 亰舒仄亠仆磳仄 弍舒亰仂于仄亳 亳仗舒仄亳
  • 15. Liskov Substition Principle Is a Is substitutable for 仂亠仆亳亠 从仍舒 仆亠 亟仂仍亢仆 仆舒舒 仗仂于亠亟亠仆亳 仂亟亳亠仍从亳 从仂仆舒从仂于 (仗亠亟- 仍仂于亳 亳 仗仂-仍仂于亳)
  • 17. Liskov Substitution Principle 弌仂亰亟舒亠仄 仆仂于亶 从仍舒 亟于舒 从仍舒舒 亟亠仍 仆从亳仂仆舒仍仆仂, 仆仂 仆亠 亰舒仄亠仆磳仄 仄仂亢仆仂 仂亰亟舒 3 从仍舒 仂 从仂仂仂亞仂 仗仂仆舒仍亠亟仂于舒 亳 亟于舒 从仍舒 丕弍亠亟亳 仂 从仍舒 仆舒仍亠亟仆亳从亳 亳 仂亟亳亠仍 亰舒仄亠仆磳仄
  • 18. Interface Segregation Pinciple 亳仆亳仗 舒亰亟亠仍亠仆亳 亳仆亠亠亶仂于 仍亳亠仆 仆亠 亟仂仍亢仆 亰舒于亳亳 仂 仄亠仂亟仂于 从仂仂亠 仂仆亳 仆亠 亳仗仂仍亰ム
  • 19. Interface Segregation Principle 亳仆 舒弍舒从亳 于 仆舒仍亠亟仂于舒仆亳亳 束亳仆亶損 亳仆亠亠亶
  • 21. Dependency Inversion Principle 仂亟仍亳 于亠仆亠亞仂 仂于仆 仆亠 亟仂仍亢仆 亰舒于亳亠 仂 仄仂亟仍亠亶 仆亳亢仆亠亞仂 仂于仆. 弍舒 亟仂仍亢仆 亰舒于亳亠 仂 舒弍舒从亳亳. 弍舒从亳亳 仆亠 亟仂仍亢仆 亰舒于亳亠 仂 亟亠舒仍亠亶. 亠舒仍亳 亟仂仍亢仆 亰舒于亳亠 仂 舒弍舒从亳亶.
  • 23. 舒于亳亳仄仂亳 仆亠仆亳亠 弍亳弍仍亳仂亠从亳 舒亰舒 亟舒仆仆 弌舒亳亠从亳亠 仄亠仂亟 New keyword 弌亠亠于亠 于亰舒亳仄仂亟亠亶于亳 System Clock Random
  • 24. 舒于亳亳仄仂亳 从仍舒舒 仂仆从仂 从仍舒舒 亟仂仍亢亠仆 从舒亰于舒 亰舒于亳亳仄仂亳 于 从仂仂 仂仆 仆亢亟舒亠 (磦仆亠 亰舒于亳亳仄仂亳) 舒仍仆亠 从仍舒 舒弍仂舒ム 仂 从仄亳 亰舒于亳亳仄仂礆亳
  • 26. Dependency Injection 丐亠仆亳从舒 从仂亞亟舒 于亰于舒ム亳亶 从仍舒 仗仂舒于仍磳(to inject) 亰舒于亳亳仄仂亳 于亰于舒亠仄仂仄 从仍舒 3 仂仆仂于仆 仗仂仂弍舒: 丼亠亠亰 从仂仆从仂 丼亠亠亰 于仂亶于仂 丼亠亠亰 仗舒舒仄亠
  • 27. Constructor Injection 舒 亠从仂 于亟仆 亰舒于亳亳仄仂亳 从仍舒舒 仄仂亢仆仂 舒弍仂舒 从舒从 从仂仆亠亶仆亠仂仄 舒从 亳 弍亠亰 从仍舒 于亠亞亟舒 于 于舒仍亳亟仆仂仄 仂仂礌亳亳 仗仂仍亠 仂亰亟舒仆亳 仂亳于 仄仂亢亠 弍 仄仆仂亞仂 仗舒舒仄亠仂于 于 从仂仆从仂亠 (ds) 仆亠 于亠仄 仄亠仂亟舒仄 仆亢仆 仗亠亠亟舒仆仆亠 仗舒舒仄亠 (ds) 亳仆仂亞亟舒 仆亢亠仆 从仂仆从仂 弍亠亰 仗舒舒仄亠仂于
  • 28. Property Injection 舒 亰舒于亳亳仄仂 仄仂亢仆仂 仗亠亠亟舒 于 仍ミ頴笑 仄仂仄亠仆 仂亠仆 亞亳弍从仂 仂亳于 弍亠从 仄仂亢亠 弍 于 仆亠舒弍亳仍仆仂 仂仂礌亳亳 亠仍亳 从舒从舒-仂 亳亰 亰舒于亳亳仄仂亠亶 仆亠 仗亠亠亟舒仆舒 仄亠仆亠亠 磦仆仂
  • 29. Parameter Injection 舒 亠 仆亢仆仂 仄亠仆 于亠 从仍舒 仂亠仆 亞亳弍从仂 仂亳于 仗舒亠 亳亞仆舒 仄亠仂亟舒 仄仆仂亞仂 仗舒舒仄亠仂于 (ds)
  • 30. Demo
  • 31. 亟亠 仂亰亟舒于舒 仂弍亠从? 仂仆从仂 仗仂 仄仂仍舒仆亳 弍亠亰 仗舒舒仄亠仂于 (poor mans ioc) composition root IoC container
  • 32. IoC Container 仆亳亳舒仍亳亰亳ム 亞舒 仂弍亠从仂于 亠亞亳亳ム 亳仗 仂弍亠从仂于 舒亰亠舒ム 亳仗 仂弍亠从仂于 仂亢仆仂 亳仗仂仍亰仂于舒 从舒从 从仂亟 舒从 亳 从仂仆亳亞舒亳