Last week, we had the author of TDD for a Shopping Website LiveProject. Friday at 11am Ranch time, Steven Solomon will be hosting a live TDD session just for us. See for the agenda and registration link
After your post I did some Googling on flyWeight pattern and following are some main points that I think we must keep in mind while using Flyweight pattern in our application:
1) Flyweight is used when we want to avoid creating multiple objects of the same kind and share existing instances. These objects are shared based on the intrinsic state + extrinsic state. I believe this part is clear to you.
2) We can have a set of flyweights which we don't want to share. Now lets discuss this part. We need to remember the following points for the unshared flyweights:
a) This is an optional part of the flyweight. We need not have in all the flyweight pattern implementations.
b) Understand when we use it. For example:- if we want to design an application where we have shopping cart collection object containing different products we can use Flyweight pattern. Now for each product we have an intrinsic state like the name, description, feature set etc. and extrinsic state like the number of this product present in shopping cart. Here we can easily use shared flyweight for all the different product objects. But we can have some products like assembled computer which cannot be same for all customers who plans to buy it. For this type of products we might wish to create a new object whenever any customer adds it in their basket.
I'm new to web service and in my project we're using Fatwire CMS. I'm trying to invoke OOTB webservices provided by the CMS. I've written an Axis client but running the same is giving the following stack trace.