代理模式在Android中的應用
阿新 • • 發佈:2019-01-23
package com.dqqdo.testclass; /** * Created by qingquan on 2017/6/29. */ public class ProxyMain { public static void main(String args[]){ King king = new King("嘉靖皇帝"); System.out.println("--" + king.getName() + "- 要管理國家事務了。 ----"); Official yansong = new Official("嚴嵩",false); Official xujie = new Official("徐階",true); System.out.println("-----" + king.getName() + " 選擇嚴嵩作為他的首輔。 ----"); king.setPremier(yansong); if(king.isWorkDone()){ System.out.println("國家治理的很好,皇帝很開心"); }else{ System.out.println("國家治理的不好,皇帝很生氣"); } System.out.println("-----" + king.getName() + " 選擇徐階作為他的首輔。 ----"); king.setPremier(xujie); if(king.isWorkDone()){ System.out.println("國家治理的很好,皇帝很開心"); }else{ System.out.println("國家治理的不好,皇帝很生氣"); } } /** * 首輔介面 */ interface Premier{ boolean doWork(); } /** * 官員類 實現首輔介面 */ static class Official implements Premier{ private String name; private boolean isGoodGuy; public Official(String name,boolean isGoodGuy){ this.name = name; this.isGoodGuy = isGoodGuy; } @Override public boolean doWork() { System.out.println(name + "在做具體的工作"); return isGoodGuy; } } /** * 皇帝類 */ static class King{ private Premier premier; private String name; public King(String name) { this.name = name; } public Premier getPremier() { return premier; } public void setPremier(Premier premier) { this.premier = premier; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isWorkDone(){ return premier.doWork(); } } }