proxy.java

来自「《JAVA与模式》附书中源代码」· Java 代码 · 共 60 行

JAVA
60
字号
package com.javapatterns.proxy.smartproxy;

public class Proxy implements Searcher 
{
    /**
     * @link aggregation
     * @directed 
     */
    private RealSearcher searcher;

    /**
     * @link aggregation
     * @directed 
     */
    private UsageLogger usageLogger;

    /**
     * @link aggregation
     * @directed 
     */
    private AccessValidator accessValidator;

    public Proxy()
    {
		searcher = new RealSearcher();
    }

    public String doSearch(String userId, String keyValue)
    {
        if (checkAccess(userId))
        {
	        String result = searcher.doSearch(null, keyValue);
    	    logUsage(userId);

	        return result;
        }
        else
        {
            return null;
        }
    }

    private boolean checkAccess(String userId)
    {
		accessValidator = new AccessValidator();

        return accessValidator.vaidateUser(userId);
    }

    private void logUsage(String userId)
    {
		UsageLogger logger = new UsageLogger();

        logger.setUserId(userId);

        logger.save();
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?