谢谢,最好给个简单的例子

解决方案 »

  1.   

    兄弟,我抄了一个简单工厂模式你看行不!多数情况,所创建对象的本质,可能会根
    据程序的需要发生改变。把一个创建过程提到一个特定的“创建者”
    类中,可能增强程序的灵活性。6种创建模式:
    工厂方法
    简单工厂方法
    抽象工厂方法
    构造器模式
    原型模式
    单例模式
    简单工厂模式:
      根据所提供的数据返回某个父类的一个
     实例:一个简单工厂登记表单,允许按照不同格式
     名  姓
     姓, 名//我们希望通过名和姓之间有,来区分顺序
    先写个基类;
    再定义二个子类;
    一个处理名字无,子类
    一个处理名字有,子类一个创建对象的类;
    <判断是否有,调用不同子类对象>
    /////////////////////////////////////public class Namer {
        //base class extended by two child classes
        protected String last;     //split name
        protected String first;    //stored here    public String getFirst() {
            return first;           //return first nmae
        }
        public String getLast() {
            return last;            //return last name
        }
    }////////////////////////////////////public class FirstFirst
    extends Namer {
        //extracts first name from last name 
        //when separated by a space
        public FirstFirst(String s) {
            int i = s.lastIndexOf(" "); //find sep space
            if (i>0) {
                first = s.substring(0, i).trim();
                last =s.substring(i+1).trim();
            } else {
                first = ""; // if no space
                last = s;   // put all in last name
            }
        }
    }//////////////////////////////////
    public class LastFirst extends Namer {
    // extracts last name from first name 
    // when separated by a comma
        public LastFirst(String s) {
            int i = s.indexOf(","); //find comma
            if (i > 0) {
                last = s.substring(0, i).trim();
                first = s.substring(i + 1).trim();
            } else {
                last = s;       //if no comma, 
                first = "";     //put all in last name
            }
        }
    }//////////////////////////////
    public class NamerFactory {
        //Factory decides which class to return based on
        //presence of a comma
        public Namer getNamer(String entry) {
            //comma determines name order
            int i = entry.indexOf(",");   
            if (i > 0)
                return new LastFirst(entry);
            else
                return new FirstFirst(entry);
        }
    }
      

  2.   

    google一下 java与模式 阎宏写的 前几章免费读,刚好讲了简单工厂,工厂方法,抽象工厂。