10 Things Every Java Programmer Should Know About Ruby

Message Opportunities…

Remote Proxies
Automatically forward any message to a remote object.
Auto Loaders
Stand in for an object until it gets its first message. Then load it and act like a regular proxy. Great for autoloading database backed objects.
Decorators
Intercept the messages you want and pass the rest through.
Mock Objects
Just write the methods that need to be mocked. Proxy or ignore the others as needed.
Builders
Generate XML/HTML/Whatever based on the methods called on the builder