Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 32.282.864 Times

Class::Adapter 1.02

  Date Added: January 18, 2010  |  Visits: 699

Class::Adapter

Report Broken Link
Printer Friendly Version


Product Homepage
Download (86 downloads)

Class::Adapter is a Perl implementation of the "Adapter" Design Pattern. The Class::Adapter class is intended as an abstract base class for creating any sort of class or object that follows the Adapter pattern. What is an Adapter? The term Adapter refers to a "Design Pattern" of the same name, from the famous "Gang of Four" book "Design Patterns". Although their original implementation was designed for Java and similar single-inheritance strictly-typed langauge, the situation for which it applies is still valid. An Adapter in this Perl sense of the term is when a class is created to achieve by composition (objects containing other object) something that cant be achieved by inheritance (sub-classing). This is similar to the Decorator pattern, but is intended to be applied on a class-by-class basis, as opposed to being able to be applied one object at a time, as is the case with the Decorator pattern. The Class::Adapter object holds a parent object that it "wraps", and when a method is called on the Class::Adapter, it manually calls the same (or different) method with the same (or different) parameters on the parent object contained within it. Instead of these custom methods being hooked in on an object-by-object basis, they are defined at the class level. Basically, a Class::Adapter is one of your fall-back positions when Perls inheritance model fails you, or is no longer good enough, and you need to do something twisty in order to make several APIs play nicely with each other. What can I do with the actual Class::Adapter class Well... nothing really. It exist to provide some extremely low level fundamental methods, and to provide a common base for inheritance of Adapter classes. The base Class::Adapter class doesnt even implement a way to push method calls through to the underlying object, since the way in which that happens is the bit that changes from case to case. To actually DO something, you probably want to go take a look at Class::Adapter::Builder, which makes the creation of Adapter classes relatively quick and easy..

Requirements: No special requirements
Platforms: Linux
Keyword: Adapter Class Classadapter Design Design Pattern Implementation Libraries Object Pattern Programming
Users rating: 0/10

License: Freeware Size: 24.58 KB
CLASS::ADAPTER RELATED
Miscellaneous  -  Separating Pattern Implementation from Your Code 1.0
This script separates pattern implementation from your code so that you can reuse the implementation elsewhere. It is an example that shows a reusable implementation of the Observer pattern.
 
Libraries  -  XWork 1.0.4
XWork is a generic command pattern implementation and inversion of control (IoC) container. XWork is designed to be small, fast, and fit specifically for workflow-related usages, such as Web application frameworks and workflow engines. XWork...
4.7 MB  
Miscellaneous  -  The Singleton Pattern implemented with Python 1.1
This script contains a class that shows how to implement the singleton pattern in Python. A singleton is a class that makes sure only one instance of it is ever created. Typically such classes are used to manage resources that by their very nature...
 
Libraries  -  Rose::DB::Object::Helpers 0.764
Rose::DB::Object::Helpers is a mix-in class containing convenience methods for Rose::DB::Object. SYNOPSIS package MyDBObject; use Rose::DB::Object; our @ISA = qw(Rose::DB::Object); use Rose::DB::Object::Helpers clone, { load_or_insert =>...
481.28 KB  
Miscellaneous  -  Handler stack 2.2
This script presents a design pattern that is highly reusable. Simple handlers implement one specific task from a complex set of tasks to be performed on an object. Such handlers can then be layered in a stack, in different combinations, together...
 
Libraries  -  Class::Inner 0.1
Class::Inner is a perlish implementation of Java like inner classes. SYNOPSIS use Class::Inner; my $object = Class::Inner->new( parent => ParentClass, methods => { method => sub { ... } }, }, constructor => new, args =>...
3.07 KB  
Development Tools  -  Strategy Design Pattern in Matlab 2008b 1.0
The Strategy Pattern is just one of many patterns defined by the "Gang of Four" that are commonly used in many other object-oriented programming languages.Now with Matlab 2008b we can define Interfaces and Abstract classes that can make use of...
10 KB  
Programming  -  Objectrefenceanalyser 1.01
Objectrefenceanalyser (ora) helps developers find bugs or design errors by showing Java object references in an easy way. It can be plugged into other programs for taking and saving "snapshots" of the object model at runtime for analysis.. Get...
348.16 KB  
Programming  -  DDD sample application rc
Domain-Driven Design sample application implementation
615.24 KB  
Gaming Utilities  -  Icarus Scene Engine 1.0
Icarus Scene Engine is a cross-platform 3D design studio and API libraries, integrating open source APIs into a cohesive all-open-source solution. For Windows, MacOSX, Linux, Web. Uses OpenTK, OpenGL, OpenAL, ODE, Mono/.NET, FFMpeg and OpenCV
553.97 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 3.15.3
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB