advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorial: Manufacturing Java Objects with the Factory Method Design Pattern:

A Simple Factory

The Simple Factory, a variation of the Factory Method, isn't one of the original 23 GoF design patterns. In fact, the Simple Factory isn't usually called a "pattern." Instead, the Simple Factory is called an "idiom." Whether you call it a "pattern" or an "idiom," developers make frequent use of the Simple Factory. You can use the Simple Factory when you don't need to let subclasses decide which class to instantiate.

The following code demonstrates the use of the Simple Factory for the car ordering application. Starting from the code at the very beginning of this article, you pull out any frequently-changing code, and encapsulate the code into a single class.

public class SimpleFactory
	{
	public Car createCar(String model)
		{
		Car car = null;
		if(model.equals("Lucerne"))
			car = new Buick(model);
		else if(model.equals("Corvette"))
			car = new Chevrolet(model);
		else if(model.equals("Fusion"))
			car = new Ford(model);
		else if(model.equals("GTO"))
			car = new Pontiac(model);
		else if(model.equals("Vue"))
			car = new Saturn(model);
		return car;
		}
	}

public class OrderCars
	{
	SimpleFactory factory;

	public OrderCars(SimpleFactory factory)
		{
		this.factory = factory;
		}

	public Car orderCar(String model)
		{
		Car car = factory.createCar(model);
		car.buildCar();
		car.testCar();
		car.shipCar();
		return car;
		}
	}

So What else Is new?

In the end, neither the Factory Method nor the Simple Factory keeps you from constructing concrete objects. Somewhere, your code uses Java's new keyword and calls an honest-to-goodness constructor. But with the techniques described in this article, you delay the use of new until the execution reaches a subclass. The effect of this delay is to isolate the code that's subject to frequent change. When a company announces a new make of cars, you'll know exactly where to put the new code.

Resources

About the Authors

Barry Burd is a professor in the Department of Mathematics and Computer Science at Drew University in Madison, New Jersey. When he's not lecturing at Drew University, Dr. Burd leads training courses for professional programmers in business and industry. He has lectured at conferences in America, Europe, Australia and Asia. He is the author of several articles and books, including "Java 2 For Dummies" and "Eclipse For Dummies," both published by Wiley.

Michael P. Redlich is a Senior Research Technician (formerly a Systems Analyst) at ExxonMobil Research and Engineering, Co. in Clinton, New Jersey with extensive experience in developing custom web and scientific laboratory applications. Mike also has experience as a Technical Support Engineer for Ai-Logix, Inc. where he developed computer telephony applications. He holds a Bachelor of Science in Computer Science from Rutgers University. In his spare time, Mike facilitates the ACGNJ Java Users Group and serves as ACGNJ Secretary. Mike has also co-written several articles for JavaBoutique, and his computing experience includes computer security, relational database design and development, object-oriented design and analysis, C/C++, Java, Visual Basic, FORTRAN, Pascal, MATLAB, HTML, XML, ASP, VBScript, and JavaScript in both the PC and UNIX environments.

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.

 Microsoft Visual Studio 2010 Showcase
 Avaya Developer Showcase
 MSDN Spotlight
 PHP for Windows Showcase
XML error: undefined entity at line 39
advertisement
Receive Articles via our XML/RSS feed
Receive Articles via our XML/RSS feed

JavaBytes
Internet Cyclone
This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

Windows 7: From Beta to Final Code in One Year
Google Shows Off Chrome OS, Releases Source
Microsoft Shows Off Silverlight 4, IE9 Plans
Metasploit Expands Vulnerability Test Framework
HyperCard Reborn?
Fedora 12 Takes Aim at Linux Networking
Top Supercomputer Nearly Doubles in Speed
Fedora 12 Linux Tackles Virtualization
Apple Gives iPhone Developers App Status Tracker
Novell Sets OpenSUSE 11.2 Free

Creating Custom Export Filters for StarOffice with XSLT
WPF Wonders: Using DataTemplates
Crystal Reports Family Offers Options for Developers
Avaya Aura Session Manager video
Avaya Aura Overview video
Exploring HTML 5's Audio/Video Multimedia Support
Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
Understanding the Cloud Computing Security Vulnerabilities
Cisco and IBM Target a Greener World
Upgrade to Visual Studio 2010 with the Ultimate Offer

Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs