设计模式 - 工厂方法模式

 

 

/**
 * 书
 */
public abstract class Book {

    /**
     * 打印书籍名字
     */
    public abstract void printName();

}

  

/**
 * 英语书
 */
public class EnglishBook extends Book {

    @Override
    public void printName() {
        System.out.println("this is 《English Book》");
    }
}

  

/**
 * Java编程
 */
public class JavaBook extends Book {

    @Override
    public void printName() {
        System.out.println("this is 《Java Book》");
    }

}

  

public interface BookFactory {
    /**
     * 生产书籍
     * @return      书籍
     */
    Book createBook();
}

  

/**
 * EnglishBook工厂
 */
public class EnglishBookFactory implements BookFactory {

    @Override
    public Book createBook() {
        return new EnglishBook();
    }

}

  

/**
 * JavaBook工厂
 */
public class JavaBookFactory implements BookFactory {

    @Override
    public Book createBook() {
        return new JavaBook();
    }

}

  

public class Client {

    public static void main(String[] args) {
        Book book = new EnglishBookFactory().createBook();
        book.printName();

        book = new JavaBookFactory().createBook();
        book.printName();
    }

}

  输出

this is 《English Book》
this is 《Java Book》

  

 

posted on 2017-09-22 11:36  小小程序员的梦想  阅读(103)  评论(0编辑  收藏  举报

导航