CoreLinux++
Functional Requirement Document Revision $Revision: 1.2 $ Last
Modified : Sunday, February 6, 2000
Title : Proxy Pattern
1. Introduction
Proxy is applicable whenever there is a need for a more versatile
or sophisticated reference to an object than a simple pointer. This
requirement focuses on two (2) situations specifically:
- Remote Proxy
-
Provide a local representative for an object in a different address
space.
-
Protection Proxy
-
Controls access to the the original object.
Proxy is often used to describe Smart Pointers, which we treat
differently in a seperate requirement.
1.1 Deliverables Overview
The participants in the Proxy pattern include:
- Proxy
-
Maintains a reference that lets the proxy access the real subject.
Provides an interface to Subject's so that a proxy can be
substituted for the real object. Controls access to the real subject
and may be resonsible for creating and destroying it.
-
Subject
-
Defines the common interface for RealSubject and Proxy so that a
Proxy can be used anywhere a RealSubject is expected.
-
RealSubject
-
Defines the real object that the proxy represents.
-
The deliverable is mostly vacuous in that we want to capture the
participants abstractions.
The CoreLinux++ team will deliver Proxy implementations for specific
cases as needed.
Users can utilize the participant abstractions as a basis for
creating their own Proxy implementation outside of the libcorelinux++
library.
2. Functional Requirements
Proxy and participants will be publicly available for extension.
2.1 User Interface Specifications
NA
2.2 Product Services
NA
2.3 External Interfaces and Database Requirements
NA
2.4 Error Handling
NA
2.5 Foreseeable Functional Changes and Enhancements
NA.
3. Non-Functional Requirements
Precondition constraints: None
Postcondition constraints: None
Invarient constraints: None
3.1 Performance Requirements
NA
3.2 User Documentation and Other User Aids
This Document
Analysis Use-Case diagrams
Design class diagrams
3.3 Development Requirements
Standards: CoreLinux++ C++ Standards and
Guidelines
Will be part of the libcorelinux++ shared library.
3.4 Foreseeable Non-Functional Changes
NA
4. Remarks and Guidelines for Later Life Cycle Phases
TBD
5. Term Glossary
TBD
Copyright © 1999, 2000 by CoreLinux Consortium
This material may be distributed only subject to the terms and conditions set forth in the
Open Publication License
|