RemoteRendererImpl.java
package com.example.graphics.proxy;
import com.example.graphics.model.Circle;
import com.example.graphics.model.Line;
import com.example.graphics.model.Rectangle;
import com.example.graphics.model.Triangle;
/**
* Implementation of the RemoteRenderer interface.
* This simulates a remote rendering service.
*/
public class RemoteRendererImpl implements RemoteRenderer {
@Override
public void renderCircle(Circle circle) {
// Simulate network delay
simulateNetworkDelay();
System.out.println("======== 远程渲染服务 ========");
System.out.println("远程: 渲染圆形 - 位置(" + circle.getX() + "," +
circle.getY() + "), 半径: " + circle.getRadius());
System.out.println("============================");
}
@Override
public void renderRectangle(Rectangle rectangle) {
// Simulate network delay
simulateNetworkDelay();
System.out.println("======== 远程渲染服务 ========");
System.out.println("远程: 渲染矩形 - 位置(" + rectangle.getX() + "," +
rectangle.getY() + "), 宽: " + rectangle.getWidth() +
", 高: " + rectangle.getHeight());
System.out.println("============================");
}
@Override
public void renderLine(Line line) {
// Simulate network delay
simulateNetworkDelay();
System.out.println("======== 远程渲染服务 ========");
System.out.println("远程: 渲染直线 - 从(" + line.getX1() + "," +
line.getY1() + ")到(" + line.getX2() + "," + line.getY2() + ")");
System.out.println("============================");
}
@Override
public void renderTriangle(Triangle triangle) {
// Simulate network delay
simulateNetworkDelay();
System.out.println("======== 远程渲染服务 ========");
System.out.println("远程: 渲染三角形 - 顶点1(" +
triangle.getX1() + "," + triangle.getY1() + "), 顶点2(" +
triangle.getX2() + "," + triangle.getY2() + "), 顶点3(" +
triangle.getX3() + "," + triangle.getY3() + ")");
System.out.println("============================");
}
@Override
public void clear() {
// Simulate network delay
simulateNetworkDelay();
System.out.println("======== 远程渲染服务 ========");
System.out.println("远程: 清除渲染区域");
System.out.println("============================");
}
@Override
public void display() {
// Simulate network delay
simulateNetworkDelay();
System.out.println("======== 远程渲染服务 ========");
System.out.println("远程: 显示渲染内容");
System.out.println("============================");
}
/**
* Simulate network delay for remote operations
*/
private void simulateNetworkDelay() {
try {
// Simulate a delay between 100-300ms
Thread.sleep((long) (100 + Math.random() * 200));
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}