设计模式之代理模式
心得体会
上完代理模式这一课后写一点自己的心得体会。
无论在那个行业谈创业必不可少的就是资金,当然软件这个行业也不例外,不过在每个行业都有着自己节约资金的方法,当然软件这个行业也有。我们就会想到在创业时需
要服务器,一个刚刚起步的企业不可能花大笔的资金去购买一台服务器,当然也不可能有那么多的资金来购买啊。所以我们就需要来租用别人的服务器,那么这就可以说我们需
要一个代理。通过租用别人的服务器我们就可以节约很多资金,这更有利于创业。通过老师的讲解似乎也更懂了许多商业界的事,比如说土豆和优酷的合并,不是就因为服务器
资源的浪费吗,服务器得不到充分的利用,并占用了大量的资金来购买服务器,两家的合并共用一台服务器,节约很多的成本。所以对于我们软件行业的最初创业者而言租用服
务器是很划算的。
租用一台服务器来运行我们的程序,客户和我们还有租来的服务器就组成了一个代理模式的示意图,通过租用服务器,就是代理模式的一个应用。
课后习题:
class Access Validator
{
public bool Validate(string userId)
{
//身份验证实现代码省略
}
}
class Logger
{
public void Log(string userId)
{
//日志记录实现代码省略
}
}
interface Logger
{
string DoSearch (string userId , string keyword);
}
class RealSearch :Search
{
public string DoSearch(string userId , string keyword)
{
//信息查询实现代码省略
}
}
class ProxySearch:Search
{
private RealSearch searcher=new RealSearch();
private AccessValidator validator ;
private Logger logger;
public string DoSearch(string userId , string keyword)
{
//如果身份验证成功,则执行查询
if (validate.userId)
{
string result =searcher.DoSearch()userId ,keyword);
log.userId;//记录查询日志
return result; //返回查询结果
}
else
{
return null ;
}
}
public bool Validate(string userId)
{
validator=new AccessValidator();
return validator.validate(userId);
}
public void (string userId)
{
logger=new Logger();
return logger.log();
}
}
class Test
{
public static void Main(string args[])
{
Searcher searcher;//针对抽象编程,客户端无需分辨真实主题类和代理类
searcher=new ProxySearcher();
string result=searcher.DoSearch("Sunny","Money");
//此处省略后续处理代码
}
}