pivot & static
--------------

                 Key: PIVOT-743
                 URL: https://issues.apache.org/jira/browse/PIVOT-743
             Project: Pivot
          Issue Type: Improvement
            Reporter: Andrei Pozolotin


Greg, hello:

1) in this example you say:
http://pivot.apache.org/tutorials/list-buttons.html
"Note that this example makes use of the global resource cache to store the 
loaded images."

2) which reminds of the "java evil singleton pattern"
http://java.sun.com/developer/technicalArticles/Programming/singletons/
http://www.ibm.com/developerworks/webservices/library/co-single/index.html
http://beust.com/weblog/2011/03/10/rehabilitating-the-singleton-pattern/
http://tech.puredanger.com/2007/07/03/pattern-hate-singleton/
and the consensus seems to be: 
"Singletons are fine as long as you don't implement them with static"   

3) and pivot uses them freely; few examples

public abstract class ApplicationContext {

    protected static ArrayList<Display> displays = new ArrayList<Display>();
    protected static ArrayList<Application> applications = new 
ArrayList<Application>();

    private static HashMap<URI, Object> resourceCache = new HashMap<URI, 
Object>();
    private static ResourceCacheDictionary resourceCacheDictionary = new 
ResourceCacheDictionary();


public abstract class Theme {

    private static Theme theme = null;


4) do you think is it feasible to convert all of pivot into SPI:

                ServiceLoader<PivotFrameworkFactory> loader = 
ServiceLoader.load(PivotFrameworkFactory.class);
                PivotFrameworkFactory factory = loader.iterator().next();
                Map<String, Object> config = new HashMap<String, Object>();
                PivotFramework framework = factory.newFramework(config);

5) the two use cases that affect me now:
a) applet reload shares static
b) pivot + osgi (not sure yet if I can find a workaround; possibly depends on 
what you do about PIVOT-742 PIVOT-22)

thank you;

Andrei


--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to