1. 程式人生 > >工廠設計模式實踐

工廠設計模式實踐

 package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public interface User {
    public void adduser();
    public void deluser();
    public void modifyuser();

}

----------------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public class WebUser implements User {

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#adduser()
     */
    public void adduser() {
       
        System.out.println("add a webuser");
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#deluser()
     */
    public void deluser() {
        // TODO Auto-generated method stub
        System.out.println("del a webuser");
    }

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#modifyuser()
     */
    public void modifyuser() {
        // TODO Auto-generated method stub

    }

 

}

-------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public class MessageUser implements User {

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#adduser()
     */
    public void adduser() {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#deluser()
     */
    public void deluser() {
        // TODO Auto-generated method stub

    }

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#modifyuser()
     */
    public void modifyuser() {
        // TODO Auto-generated method stub

    }


}
---------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public class PhoneUser implements User {

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#adduser()
     */
    public void adduser() {
        // TODO Auto-generated method stub
        System.out.println("add a phoneuser");
    }

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#deluser()
     */
    public void deluser() {
        // TODO Auto-generated method stub
        System.out.println("del a phoneuser");

    }

    /* (non-Javadoc)
     * @see com.blue.taste.patterns.User#modifyuser()
     */
    public void modifyuser() {
        // TODO Auto-generated method stub

    }


}
------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public interface UserFactory {
   
    public User factory();
   

}
--------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public class WebUserFactory implements UserFactory {
    public User factory()
    {
        return new WebUser();
    }
   
}
------------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public class PhoneUserFactory implements UserFactory {
    public User factory()
    {
        return new PhoneUser();
    }

}

-----------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public class MessageUserFactory implements UserFactory {
    public User factory()
    {
        return new MessageUser();
    }

}
--------------------------------------
package com.blue.taste.patterns;

/**
 * @author Mr.Awolf
 * Aug 3, 2006
 */
public class TestFactory {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
       
        WebUserFactory webf=new WebUserFactory();
        User u=webf.factory();
        u.adduser();
       
        PhoneUserFactory pf=new PhoneUserFactory();
        User s=pf.factory();
        s.adduser();

        u.deluser();
        s.deluser();
        
    }

}