Have you ever use HTTP-proxy or some other proxy? When you’re in a
relatively isolated environment, such as the LAN in your company, maybe
you’ll need it. Actually, when I was an intern in an IT company, I
always used the HTTP-proxy to login the MSN and surf on the internet.
When I used MSN or surf on the net, I can’t feel the existence of the
proxy. And this is the role of a proxy. And this can be express as
follows.
Actually, the client proxy is just like a middle layer between
the client and the real server. And in this layer, the network
administrator can do many things, such as, he can group people by using
authorization mechanism that different group will get different
service, or he can allow or forbid you to surf some sites. All those
can be done in the proxy layer.
Further more, layer is an important concept in computer
science; you can see it everywhere, such as the HAL (Hardware
Abstraction Layer) in the OS, or the N-tier architecture website and so
on. With layer, we can do many things, for example, we move all the
platform-dependent properties in to the HAL, and then when we want to
move the OS from one platform to the other, we just need to rewrite the
HAL.
And here we use the proxy layer to solve some problems which
happen during we access the subject directly, such as the security, the
spending or something else.
The intent of the corresponding pattern in the GoF is as follows.
Provide a surrogate or placeholder for another object to control access to it.
– By THE GoF BOOK
Now, the example time
We put the RealServer and the ClientProxy into a package named
outer and put the Client into the default package. And then, change the
modifier of the RealServer to default, and the ClientProxy to public,
so that, the Client can’t access the RealServer Directly.
If you try to do this, server = new RealServer(“server”) in the
Client, then you’ll get a complier error, it means the Client can’t
access the RealServer as you want.
Now, we can use the proxy to bridge the Client and the RealServer.
- private
var
server
:
Server
;
-
- server
=
new
ClientProxy
(
serverName
)
;
- server
.
getRequest
()
;
- server
.
sendResponse
()
;
If the Client wants to visit the server, it can only through the proxy. So you can do what you want to control the visit
Download Full Project
Enjoy!
分享到:
相关推荐
Go Design Patterns for Real-World Projects 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Go Design Patterns for Real-World Projects 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
Data Structures and Algorithms with Object-Oriented Design Patterns in CSharp - Bruno R. Preiss
"Laracasts - design-patterns-in-php.torrent"则可能是一个BT种子文件,用于通过BitTorrent协议下载整个课程的大型数据包,这通常包括所有视频讲座和其他相关文件。 在课程"设计模式在PHP中"中,你可能会学到以下...
The topic of Design Patterns sounds dry, academically constipated and, in all honesty, done to death in almost every programming language imaginable—including programming languages such as JavaScript...
https://github.com/kamranahmedse/design-patterns-for-humans 中文翻译,实例修改位JAVA代码
Apply design patterns to modern C++ programming Use creational patterns of builder, factories, prototype and singleton Implement structural patterns such as adapter, bridge, decorator, facade and ...
《Kotlin设计模式实战解析》 在编程领域,设计模式是一种通用、可重用的...开源项目"Design-Patterns-In-Kotlin"则是一个很好的学习资源,它提供了各种设计模式在Kotlin中的具体实现,有助于开发者深入学习和实践。
Go: Design Patterns for Real-World Projects What You Will Learn: Install and configure the Go development environment to quickly get started with your first program Use the basic elements of the ...
《ActionScript设计模式》是软件开发领域中针对ActionScript编程语言的一种实践指南,它深入探讨了如何在ActionScript项目中应用经典的设计模式。设计模式是软件工程中的宝贵经验总结,它们是解决常见问题的可复用...
Java+Enterprise+Design+Patterns+-+Patterns+in+Java+Volume+3Java+Enterprise+Design+Patterns+-+Patterns+in+Java+Volume+3
《Pro-Objective-C-Design-Patterns-for-iOS》是一本专注于在iOS平台上利用Objective-C语言实现设计模式的专业书籍。书中旨在帮助已经有一定Cocoa开发基础的开发者,通过掌握设计模式的实践应用,提升软件开发的生产...
"design-patterns-c-sharp"这个主题涵盖了C#编程环境中如何应用这些模式的知识。 首先,我们需要理解设计模式的基本概念。设计模式并不具体到任何特定的代码或库,而是一种描述在特定情况下如何设计软件组件的通用...
在本论文“2010-13-Design Patterns for Safety-Critical”中,作者Ashraf Armoush探讨了如何将设计模式的概念应用于安全关键嵌入式系统的开发。他构建了一个设计模式目录,这个目录包含了一系列针对硬件和软件的...
这个压缩包“java-design-patterns-master”显然是一个专注于Java设计模式的学习资源,旨在帮助开发者深入理解和应用这些模式。下面我们将详细探讨Java设计模式及其在实际开发中的应用。 1. **单例模式(Singleton...