package Ġtop . kan eta h . kotlin . pattern . fly weight Pattern Ċ Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġcreate Ġby Ġk ane Ġon Ġ 2 0 1 8 / 4 / 1 3 . Ċ Ġ* Ċ Ġ* Ġ äº« åħĥ æ¨¡å¼ı Ċ Ġ* Ġä½¿çĶ¨ åħ±äº« çī© ä»¶ ï¼Į çĶ¨æĿ¥ å°½ åı¯èĥ½ åĩı å°ĳ åĨħåŃĺ ä½¿çĶ¨ éĩı ä»¥åıĬ åĪĨäº« èµĦ è®¯ ç»Ļ å°½ åı¯èĥ½ å¤ļ çļĦ çĽ¸ ä¼¼ çī© ä»¶ ãĢĤ Ċ Ġ* Ġ éĢĤ åĲĪ çĶ¨äºİ å½ĵ å¤§ éĩı çī© ä»¶ åıªæĺ¯ éĩįå¤į åĽł èĢĮ å¯¼èĩ´ æĹłæ³ķ ä»¤ äºº æİ¥åıĹ çļĦ ä½¿çĶ¨ å¤§ éĩı åĨħåŃĺ ãĢĤ Ċ Ġ* Ġ éĢļå¸¸ çī© ä»¶ ä¸ŃçļĦ éĥ¨åĪĨ çĬ¶æĢģ æĺ¯ åı¯ä»¥ åĪĨäº« ãĢĤ Ċ Ġ* Ġ å¸¸ è§ģ åģļ æ³ķ æĺ¯ æĬĬ å®ĥä»¬ æĶ¾åľ¨ å¤ĸéĥ¨ æķ°æį® ç»ĵæŀĦ ï¼Į å½ĵ éľĢè¦ģ ä½¿çĶ¨ æĹ¶ åĨį å°Ĩ å®ĥä»¬ ä¼łéĢĴ ç»Ļ äº« åħĥ ãĢĤ Ċ Ġ*/ Ċ class ĠTest Fly weight Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtop She lf Ġ= ĠArrayList < P otion >() ĊĠĠĠ Ġprivate Ġval Ġbottom She lf Ġ= ĠArrayList < P otion >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠP otion Factory (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( In visibility P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( In visibility P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( Strength P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( He aling P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( In visibility P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( Strength P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( He aling P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop She lf . add ( create P otion ( He aling P otion :: class )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom She lf . add ( create P otion ( Po ison P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom She lf . add ( create P otion ( Po ison P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom She lf . add ( create P otion ( Po ison P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom She lf . add ( create P otion ( H oly Water P otion :: class )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom She lf . add ( create P otion ( H oly Water P otion :: class )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġenumerate () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Enumer ating Ġtop Ġshe lf Ġpot ions ") ĊĠĠĠĠĠĠĠ Ġtop She lf . map Ġ{ Ġit . dr ink () Ġ} ĊĠĠĠĠĠĠĠ Ġprintln (" Enumer ating Ġbottom Ġshe lf Ġpot ions ") ĊĠĠĠĠĠĠĠ Ġbottom She lf . map Ġ{ Ġit . dr ink () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ