디자인 모드 (2) 프 록 시 모드 정적 에이전트
public class car{
long start,end;
private void before(){
start=System.currentTimeMillis();
System.out.println(" :"+start);
}
private void after(){
end=System.currentTimeMillis();
System.out.println(" :"+end+".
:"+(end-start)+" ");
}
pubic void run(){
try {
after();
System.out.println(" ~~~");
Thread.sleep((int)(Math.random()*100));
before();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Process finished with exit code 0
하지만 확장 할 수 있 도록 Icar. 자바 (자동차 인터페이스) 를 사용 합 니 다.
package cn.niriqiang.demo;
/**
* Created by fengyuwusong on 2017/8/19 14:53.
*/
public interface ICar {
public void run();
}
CarImpl 자동차 실현 류
package cn.niriqiang.demo;
/**
* Created by fengyuwusong on 2017/8/19 14:54.
*/
public class CarImpl implements ICar{
@Override
public void run() {
try {
System.out.println(" ~~~");
Thread.sleep((int)(Math.random()*1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
CarProxy 자동차 타이머 기능 에이전트
package cn.niriqiang.demo;
/**
* Created by fengyuwusong on 2017/8/19 14:58.
*/
public class Carproxy implements ICar{
private ICar car;
long start,end;
public Carproxy(ICar car) {
this.car = car;
}
@Override
public void run() {
before();
car.run();
after();
}
private void before(){
start=System.currentTimeMillis();
System.out.println(" :"+start);
}
private void after(){
end=System.currentTimeMillis();
System.out.println(" :"+end+".
:"+(end-start)+" ");
}
}
main 테스트 방법
package cn.niriqiang.demo;
/**
* Created by fengyuwusong on 2017/8/19 14:55.
*/
public class main {
public static void main(String[] args) {
ICar car=new CarImpl();
Carproxy carproxy=new Carproxy(car);
carproxy.run();
}
}
상기 표기 법 은 바로 대리 모델 의 정적 대리 이다. 이러한 장점 은 수요 변화 에 가입 하 는 것 이다. 자동차 운행 전후 에 새로운 기능 을 추가 해 야 할 때 우 리 는 기능 에 따라 자동차 에 새로운 대 리 를 추가 할 수 있다. 예 를 들 어:
CarLogProxy. java 는 자동차 에 로그 기능 을 추가 합 니 다.
package cn.niriqiang.demo;
/**
* Created by fengyuwusong on 2017/8/19 15:27.
*/
public class CarLogProxy implements ICar{
ICar car;
public CarLogProxy(ICar car) {
this.car = car;
}
private void before(){
System.out.println(" :xxxxx...");
}
private void after(){
System.out.println(" :xxxxx...");
}
@Override
public void run() {
before();
car.run();
after();
}
}
우 리 는 man 방법 을 조금 만 바 꾸 면 새로운 기능 을 얻 을 수 있다.
package cn.niriqiang.demo;
/**
* Created by fengyuwusong on 2017/8/19 14:55.
*/
public class main {
public static void main(String[] args) {
ICar car=new CarImpl();
Carproxy carproxy=new Carproxy(car);
CarLogProxy carLogProxy=new CarLogProxy(carproxy);
carLogProxy.run();
}
}
결실
운전 전 일지: xxxx... 운전 전 시간: 1503127842768 운전 중 ~ ~ 운전 후 시간: 1503127842835. 총 소모 시간: 67 밀리초 운전 후 일지: xxxx...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.