設計モードのエージェント設計モードの簡単な実践
1.トップレベルのインタフェースクラス--共通ルールの定義
2.コアクラス--コアの機能コードを定義する
3.エージェントクラス---コアコード以外の追加操作を実現
4.エージェントモードテストクラス
package com.git.base.designpatterns.proxy;
/**
*
* <p>Title: ReadBook.java</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2016</p>
* <p>Company: Sage</p>
* @author
* @date 2016 5 3 10:49:06
* @version 1.0
*/
public interface ReadBook {
public void read();
}
2.コアクラス--コアの機能コードを定義する
package com.git.base.designpatterns.proxy;
public class ReadBookInstance implements ReadBook{
@Override
public void read() {
System.out.println(" ing");
}
}
3.エージェントクラス---コアコード以外の追加操作を実現
package com.git.base.designpatterns.proxy;
/**
*
* <p>Title: ProxyReadBook.java</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2016</p>
* <p>Company: Sage</p>
* @author
* @date 2016 5 3 10:46:05
* @version 1.0
*/
public class ProxyReadBook implements ReadBook{
private ReadBookInstance read;
/**
* -- AOP
* <p>Title: read</p>
* <p>Description: </p>
* @see com.git.base.designpatterns.proxy.ReadBook#read()
*/
@Override
public void read() {
System.out.println(" !");
read.read();//
System.out.println(" !");
}
public ReadBookInstance getRead() {
return read;
}
public void setRead(ReadBookInstance read) {
this.read = read;
}
}
4.エージェントモードテストクラス
package com.git.base.designpatterns.proxy;
public class ProxyTest {
public static void main(String[] args) {
ReadBookInstance read = new ReadBookInstance();
ProxyReadBook proxy = new ProxyReadBook();
proxy.setRead(read);
proxy.read();
}
}