Design Patterns

Project Web Log
Contact Information

I got a few of the design pattern books and tried to see what would fit where and where I could change some things. I've got the list below

Type Name Notes
Creational Abstract Factory Not Used
Creational Builder Used to create filename tag
Creational Factory Method Maybe used in filename parse methods.
Creational Prototype Will create
method for all classes
Creational Singleton Used for TagOptions class
Structural Adapter Not Used. We can still change the base interface/methods
Structural Bridge Not used. Do we need to split tag operations from thier representation? Maybe split filename tag representation from its parsing operations.
Structural Composite Used to parse filename. MP3 tags not quite composite because the tree is not recursive.
Structural Decorator Not Used. We can still change the base interface/methods
Structural Facade Are the interfaces all facades? like AbstractMP3FileItem?
Structural Flyweight Tried using this with AbstractMP3Object, but can't share instances because data is stored within each AbstractMp3Object.
Structural Proxy No need for remote (over network) proxy. No need for virtual proxy (to cache additional info, delay creation). No need for protection proxy (to hide methods based on caller)
Behavioral Chain of Responsibility Not used. No messages are used here.
Behavioral Command Implement Undo
Behavioral Interpreter Used to parse filename
Behavioral Iterator Implement on AbstractMP3Tag level.
Behavioral Mediator Not Used. No messages in these classes.
Behavioral Memento Implement Undo
Behavioral Observer Not Used. No messages in these classes.
Behavioral State Use to see whether to save (clean, dirty)
Behavioral Strategy Not Used.
Behavioral Template Method Briefly Searched. Not found. Maybe apply to AbstractMp3Fragment read/write (body/header)
Behavioral Visitor Not used. Breaks object orientated encapsulation.
System Model-View-Controller Not Used. No GUI. Model-Controller is Bridge.
System Session Not Used. No Network communications.
System Worker Thread Not Used. No worker thread at this level. Unless to create new class to read/write maybe files at once.
System Callback Not Used. Would be used with Worker Thread.
System Successive Update Not Used. Would be used with Worker Thread.
System Router Not Used. Multiple sources (tags), but not multiple destinations unless creating worker thread
System Transaction Used to resize ID3v2 padding. Apply to all save operations?

Home | Description |  Download |  Documentation |  Description | Schedule  | Project Web Log |  Discussions |  Members | Contact Information

Java ID3 Tag Library is released under LGPL.
For problems or questions regarding this web send an email here.
Last updated: 06/13/2005.