Design and implementation steps:
- Drawing with required application, pages on paper
- Studying functional requirements. Make a list of demands and goals (very important because the aim is not exactly project will not succeed)
- Drawing in GIMP’s answer to the question “how should it look?”
- Document “Widget selection” which will provide […]
Archive for the ‘Design pattern’ Category
Applicatie Design GWT
Observer python
This is used to notify a list of objects with a state change.
Observer allows adding features in an application in a pluggable way by de-coupling
the new functionality from the existing code base. An event framework is a typical
implementation of the Observer pattern and is described in the figure that follows.
Every time an event occurs, all […]
Facade python
Facade provides a high-level, simpler access to a subsystem.
A Facade is nothing but a shortcut to use a functionality of the application, without
having to deal with the underlying complexity of a subsystem. This can be done, for
instance, by providing high-level functions at the package level.
Alex Martelli (aleax@google.com) about facade
gdd_pydp.pdf
Proxy python
Proxy provides indirect access to an expensive or a distant resource.
A Proxy is between a Client and a Subject, as shown in the figure. It is intended to
optimize Subject accesses if they are expensive. For instance, the memoize decorator
described in the previous chapter can be considered as a Proxy.
A Proxy can also be used to […]
Interfaces python
An interface is a definition of an API. It describes a list of methods and attributes a
class should have to implement with the desired behavior. This description does not
implement any code, but just defines an explicit contract for any class that wishes to
implement the interface. Any class can then implement one or several interfaces in
whichever […]
Adapter python
The Adapter pattern is based on this philosophy and defines a wrapping mechanism,
where a class or an object is wrapped in order to make it work in a context that was
not primarily intended for it. StringIO is a typical example, as it adapts the str type
so it can be used as a file type:
[…]
Structural Patterns
Structural patterns are really important in big applications. They decide how the
code is organized and give developers recipes on how to interact with each part of
the application.
The most well-known implementation of structural patterns in the Python world
is the Zope Component Architecture (ZCA, see http://wiki.zope.org/zope3/
ComponentArchitectureOverview). It implements most of the patterns described in
this section and provides […]
Singleton python
he Singleton pattern makes sure that a given class has always only one living
instance in the application. This can be used, for example, when you want to restrict
a resource access to one and only one memory context in the process. For instance,
a database connector class can be a Singleton that deals with synchronization […]
MVC GWT
General idea
Since MVC is probably the most most widely used architectural pattern for designing classical web applications it is also appealing choice for GWT. However optimal implementation of this pattern differs quite significantly from traditional web MVC and is much closer to MVC for desktop clients. One of these differences is that the Model in […]
other people’s advice
“What did everyone else say about this?”
People are social. As strong as our opinions may sometimes be, what our peers think tends to influence us.
Witness the spectacular growth of online “user comments”: Amazon for books, IMDb.com for movies, photo.net and flickr for photographs, and countless retailers who offer space for user-submitted product reviews. Auction sites […]
keyboard only
“Please don’t make me use the mouse.”
Some people have real physical trouble using a mouse. Others prefer not to keep switching between the mouse and keyboard because that takes time and effortthey’d rather keep their hands on the keyboard at all times. Still others can’t see the screen, and their assistive technologies often interact with […]
A Detailed Model of the Computer and Python interpreters
In this section we develop a detailed model of the running time performance of Python programs. The model developed is independent of the underlying hardware and system software. Rather than analyze the performance of a particular, arbitrarily chosen physical machine, we model the execution of a Python program on “Python virtual machine’’ (see Figure gif).
A […]
Algorithm Analysis
What is an algorithm and why do we want to analyze one? An algorithm is “a…step-by-step procedure for accomplishing some end.’’ An algorithm can be given in many ways. For example, it can be written down in English (or French, or any other “natural’’ language). However, we are interested in algorithms which have been precisely […]
Object-Oriented Design Python
Traditional approaches to the design of software have been either data oriented or process oriented. Data-oriented methodologies emphasize the representation of information and the relationships between the parts of the whole. The actions which operate on the data are of less significance. On the other hand, process-oriented design methodologies emphasize the actions performed by a […]
Enterprise JavaBeans
spi
javax.ejb, javax.ejb.
Description
In a sense, Enterprise JavaBeans are the heart and soul of the J2EE architecture. They represent the core business
model, defined in terms of a collaborating set of components. EJBs are used to […]
Servlets and JSPs
javax.servlet, javax.servlet.http, javax.servlet.jsp, javax. servlet.jsp.taglib
Overview
The servlet API provides one of the two Web component technologies for J2EE. The general model for the
servlet API is quite straightforward, based on two packages which hold all of the core functionality:
[…]
Java 2, Enterprise Edition (J2EE)
The advent of J2EE marked an important evolutionary shift in Java, a shift from treating the language as a series
of APIs to representing it as a development framework. Conceptually, that’s exactly what J2EE is—an
architectural framework used to create enterprise applications.
Since the release of JDK 1.1, distributed programming technologies have been a special strength for Java. […]
Jini and J2EE Architectures
Core packages: net.jini.core.discovery, net.jini.core.entry, net.jini.core.event,
net.jini.core.lease, net.jini.core.lookup, net.jini.core.transaction,
net.jini.core.transaction.server
Utilities and helper packages: net.jini.admin, net.jini.discovery, net.jini.entry, net.jini.event,
net.jini.lease, net.jini.lookup, net.jini.lookup.entry, net.jini.space, com.sun.jini.admin,
com.sun.jini.discovery, com.sun.jini.fiddler, com.sun.jini.lease, com.sun.jini.lease.landlord,
com.sun.jini.lookup, com.sun.jini.lookup.entry, com.sun.jini.mahout,
com.sun.jini.mahout.binder, com.sun.jini.mercury, com.sun.jini.norm, com.sun.jini.outrigger,
com.sun.jini.reggie, com.sun.jini.start (And you thought the Swing list was long.)
Description
Although many applications claim to use a service-based architecture, Jini truly promotes a service-based
architecture. This is done by creating clear and […]
CORBA Java
Packages
JavaIDL: org.omg.CORBA, org.omg.CORBA_2_3, org.omg.CORBA_2_3. portable,
org.omg.CORBA.DynAnyPackage, org.omg.CORBAORBPackage, org.omg.CORBA.portable,
org.omg.CORBATypeCodePackage
CosNaming: org.omg.CosNaming, org.omg.CosNaming. NamingContextPackage, org.omg.SendingContext
RMI-IIOP: javax.rmi.CORBA, org.omg.stub.java.rmi
J2SE (JDK 1.2)
Use:
The Common Object Request Broker Architecture, or CORBA, is a distributed object communication
architecture. In simplest terms, it’s a way for an application to request services from another application by calling
remote methods.
CORBA pretty much provides the ultimate […]
RMI Java
Packages
java.rmi, java.rmi.dgc, java.rmi.registry, java.rmi.server, java.rmi.activation
Overview
RMI enables you to communicate by making remote method calls. Basically, it allows an application to run
methods on objects that are not in the same address space. This enables Java to use the same approach for
distributed communication as it does for local communications—the Java client can make a series of simple
method […]
