设计模式之责任链模式
?
/** 工廠創建責任鏈*/ public class SchoolFactory {public School getSchool(){Master master = new Master();Teacher teacher = new Teacher();Student student = new Student();student.setSuccessor(teacher);teacher.setSuccessor(master);return student;//商家首先和學生代表見面,學生代表決定不了傳遞teacher} }?
/** 校長*/ public class Master extends School{@Overridepublic void cost(float fee) {if(fee<1000){System.out.printf("%s批準了集團花銷%.2f","校長",fee);}else{System.out.printf("%s拒絕了集團花銷%.2f","校長",fee);}} }?
/** 老師*/ public class Teacher extends School{@Overridepublic void cost(float fee) {if(fee<500){System.out.printf("%s批準了集團花銷%.2f","老師",fee);}else{successor.cost(fee);//遞交校長}} }?
/** 學生*/ public class Student extends School{@Overridepublic void cost(float fee) {if(fee<100){System.out.printf("%s批準了集團花銷%.2f","學生代理",fee);}else{successor.cost(fee);//遞交老師}} }?
import java.util.Random;/**無良商家向學校推銷產品*/ public class Seller{private School school;public void setSchool(School school){this.school = school;}//向學校推銷了價值為 fee 的產品,交給學校集團處理,首先學生出面,學生處理不了交給老師public void sell(float fee){school.cost(fee);}public static void main(String[] args) {Seller s = new Seller();s.setSchool(new SchoolFactory().getSchool());//連續推薦了100次產品呢Random random = new Random();for(int i=0;i<100;i++){s.sell(random.nextFloat()*2000);System.out.println("商家第"+(i+1)+"次推薦:\n");}} }運行結果:
校長批準了集團花銷750.13商家第1次推薦:
學生代理批準了集團花銷48.32商家第2次推薦:
校長拒絕了集團花銷1132.45商家第3次推薦:
校長拒絕了集團花銷1015.55商家第4次推薦:
老師批準了集團花銷453.83商家第5次推薦:
校長拒絕了集團花銷1947.26商家第6次推薦:
校長批準了集團花銷720.66商家第7次推薦:
校長拒絕了集團花銷1305.28商家第8次推薦:
老師批準了集團花銷335.20商家第9次推薦:
校長批準了集團花銷957.28商家第10次推薦:
校長拒絕了集團花銷1525.19商家第11次推薦:
校長拒絕了集團花銷1068.83商家第12次推薦:
校長拒絕了集團花銷1765.73商家第13次推薦:
校長拒絕了集團花銷1087.62商家第14次推薦:
老師批準了集團花銷458.17商家第15次推薦:
校長拒絕了集團花銷1163.58商家第16次推薦:
校長拒絕了集團花銷1184.52商家第17次推薦:
校長批準了集團花銷999.77商家第18次推薦:
校長拒絕了集團花銷1520.29商家第19次推薦:
學生代理批準了集團花銷89.43商家第20次推薦:
校長拒絕了集團花銷1838.58商家第21次推薦:
校長拒絕了集團花銷1476.93商家第22次推薦:
校長拒絕了集團花銷1311.36商家第23次推薦:
校長拒絕了集團花銷1598.23商家第24次推薦:
老師批準了集團花銷109.34商家第25次推薦:
校長拒絕了集團花銷1385.41商家第26次推薦:
校長批準了集團花銷778.57商家第27次推薦:
校長批準了集團花銷572.03商家第28次推薦:
校長批準了集團花銷948.90商家第29次推薦:
老師批準了集團花銷499.02商家第30次推薦:
校長拒絕了集團花銷1454.55商家第31次推薦:
校長批準了集團花銷973.43商家第32次推薦:
校長批準了集團花銷857.02商家第33次推薦:
老師批準了集團花銷396.35商家第34次推薦:
校長拒絕了集團花銷1622.77商家第35次推薦:
校長批準了集團花銷947.73商家第36次推薦:
校長批準了集團花銷901.84商家第37次推薦:
校長拒絕了集團花銷1366.02商家第38次推薦:
校長拒絕了集團花銷1887.11商家第39次推薦:
校長拒絕了集團花銷1863.07商家第40次推薦:
學生代理批準了集團花銷2.48商家第41次推薦:
學生代理批準了集團花銷26.30商家第42次推薦:
校長批準了集團花銷758.24商家第43次推薦:
校長拒絕了集團花銷1824.15商家第44次推薦:
校長批準了集團花銷685.08商家第45次推薦:
校長拒絕了集團花銷1369.94商家第46次推薦:
校長批準了集團花銷753.66商家第47次推薦:
校長批準了集團花銷878.27商家第48次推薦:
學生代理批準了集團花銷85.79商家第49次推薦:
校長批準了集團花銷905.85商家第50次推薦:
校長拒絕了集團花銷1696.31商家第51次推薦:
校長拒絕了集團花銷1425.17商家第52次推薦:
校長批準了集團花銷552.86商家第53次推薦:
校長拒絕了集團花銷1236.59商家第54次推薦:
老師批準了集團花銷352.07商家第55次推薦:
老師批準了集團花銷197.39商家第56次推薦:
校長拒絕了集團花銷1897.87商家第57次推薦:
學生代理批準了集團花銷68.45商家第58次推薦:
校長拒絕了集團花銷1138.34商家第59次推薦:
校長拒絕了集團花銷1333.99商家第60次推薦:
校長拒絕了集團花銷1424.02商家第61次推薦:
校長批準了集團花銷613.60商家第62次推薦:
校長拒絕了集團花銷1639.28商家第63次推薦:
校長批準了集團花銷543.55商家第64次推薦:
老師批準了集團花銷232.63商家第65次推薦:
老師批準了集團花銷457.02商家第66次推薦:
校長拒絕了集團花銷1260.30商家第67次推薦:
校長批準了集團花銷941.72商家第68次推薦:
校長拒絕了集團花銷1049.71商家第69次推薦:
老師批準了集團花銷101.34商家第70次推薦:
老師批準了集團花銷132.54商家第71次推薦:
校長批準了集團花銷934.99商家第72次推薦:
校長批準了集團花銷652.20商家第73次推薦:
校長拒絕了集團花銷1979.33商家第74次推薦:
校長拒絕了集團花銷1831.61商家第75次推薦:
校長拒絕了集團花銷1365.46商家第76次推薦:
校長批準了集團花銷791.53商家第77次推薦:
校長拒絕了集團花銷1174.90商家第78次推薦:
校長批準了集團花銷504.33商家第79次推薦:
老師批準了集團花銷176.07商家第80次推薦:
校長批準了集團花銷852.83商家第81次推薦:
校長拒絕了集團花銷1390.97商家第82次推薦:
校長拒絕了集團花銷1409.01商家第83次推薦:
校長拒絕了集團花銷1023.24商家第84次推薦:
校長拒絕了集團花銷1047.94商家第85次推薦:
校長拒絕了集團花銷1847.34商家第86次推薦:
校長批準了集團花銷882.02商家第87次推薦:
校長批準了集團花銷761.82商家第88次推薦:
校長拒絕了集團花銷1072.94商家第89次推薦:
老師批準了集團花銷318.07商家第90次推薦:
校長拒絕了集團花銷1465.00商家第91次推薦:
校長拒絕了集團花銷1539.81商家第92次推薦:
校長拒絕了集團花銷1376.69商家第93次推薦:
校長拒絕了集團花銷1988.78商家第94次推薦:
校長拒絕了集團花銷1888.67商家第95次推薦:
校長拒絕了集團花銷1636.54商家第96次推薦:
校長拒絕了集團花銷1650.29商家第97次推薦:
校長拒絕了集團花銷1327.52商家第98次推薦:
校長拒絕了集團花銷1242.15商家第99次推薦:
老師批準了集團花銷206.00商家第100次推薦:
最近在整理一些資源工具,放在網站分享?http://tools.maqway.com
歡迎關注公眾號:麻雀唯伊 , 不定時更新資源文章,生活優惠,或許有你想看的
總結
以上是生活随笔為你收集整理的设计模式之责任链模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RedHat 系软件包管理
- 下一篇: 设计模式相关