???????????????????OOPS???????? ?????????????Java?????????????Singleton (????) ?? Decorator(?????)??Observer(?????) ?????????????а????????????????????????????????????檔?????????????“????”??“???”??“???”??“???” ??????????????????????????????黯???????????Щ???????????????????????????????????java????????????е???????ЩOOPS ??SOLID???????е?????????????????????????????????洦??????????????????????????Щ??????
????(??????)??????????????????????????????? Apache ?? Sun????????????Java??OOPS??????????÷????????????????????????????Java???????????????Java JDK ??????Щ??????BorderFactory???е????????Runtime???е????????java.io ???е??????????????????????????Java??????????????????Joshua Bloch ??Effective Java??????д??Java API???????????????????????????????Kathy Sierra??Head First Design Pattern(????????????)???????????????????????????????????????Щ????д?????????к?????????????????????????SOLID?????????
??????????????(???)????????????е?????????Υ??????????????????????????????Щ??н????????????????ε?Java??????????????????????????????OOPS ??SOLID????????????????????????????????????????????????????????????????????????(???) :)
????DRY – Don’t repeat yourself
????????????????????????????DRY ??????????????DRY(don’t repeat yourself)??????д???????????????????????顣???????????????????????飬????????????????????????????????????????????????????????????ó???????????????????????????????????????????????????????????????????????????????????????????????????????????????????OrderID??SSN????????ζ???????????????????????????????????????????????????????????????????????????????????е???????????????OrderID?????????????SSN??????????ж????????????????????????????????????κι???????????????????
??????????????????
????Encapsulate What Changes
???????????????????????“?仯”????????????????????????????????????????????????????????????????????????????????????????????Java???????????????????????????????????????????????У???????????????????????????“private”??“protected ”??“not public”??Java?е??Щ???????????????????????????????????????????????????????????????????????????????????????е????
??????/?????????
????OpenClosed Design Principle
??????????/?????????????(?1???)?????????????????????????????SOLID ????????????????????????????????????????????????1?????????????????????????????/????????????????????SOLID?е????“O”??????/?????????
?????????????
????Single Responsibility Principle(SRP)
??????????????????????SOLID??????SOLID?е????“S”?????????????SRP??????????????????????????????????????????????????????????????Java?е???????????????????????Щ???????????????????????????????е????????????п????????????????????????????????????????????μ?????
???????????/??????
????Dependency Injection or Inversion principle
?????????????????????????????????洦?????????????spring??????????????????????????????????????????DI????????κ????????????????????в???????????????????????????????????????????е????????????????????ж????????????????????????????????????????ЩAOP(??????????)?????????????????spring?????????????????SOLID??????????????IOC ?? DI??????е?????? SOLID?е????“D”???????????????
???????????????????
????Favor Composition over Inheritance
??????????????????????????????С??????е??Щ?????????????????????????и????????????????????????????????????????????????????????????????????????????????????????????????????????????? Effective Java???????????????????С?
?????????滻???
????Liskov Substitution Principle LSP
?????????????滻??????????????????????????滻?????縸????????????????????滻???????κ?????LSP?????????????????????????????????????????????????????????????????????????????Υ????LSP???????????? LSP SOLID?????????????????(????????)????????????????????SOLID?е????“L”????? LSP??????
?????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????y???????Java????????????????????????????????????κ????????????????y?????е????????????ù???????????ζ??????????????
???????????(??????????)?????
???????????????(??????????)????????????????????????κ?????μ?????????????????д????????????Java?У????????????????????????????????????????y??????????Java?????????飬 Effective Java ??? head first design pattern ????????????顣
???????????
??????????????????????е????????????????Щ?????????????????????????????Java ?е?equals() ?? hashCode() ????????????????????????????????????????????????????????????????????÷????????????????????????????????????????????????
???????
??????????????????????????????????д???????????????и???????????????????????????????????????????????????????????????????Щ??????????????????Υ?????????????????????????????????????????????????????????????????????????????????????????????????н?????????????????????