JAVA 디자인 모델-공장 모델

1.공장 방법 모델
interface BeerFactory{
    void createBeer();
}
class QingDaoBeerFactory implements BeerFactory{
    @Override
    public void createBeer() {
        System.out.println("         ");
    }
}
class XueHuaBeerFactory implements BeerFactory{
    @Override
    public void createBeer() {
        System.out.println("         ");
    }
}
class FactoryMethod{
    public static void main(String[] args) {
        BeerFactory qingDao=new QingDaoBeerFactory();
        BeerFactory xueHua=new XueHuaBeerFactory();
    }    
}

2.추상 적 인 공장 모델
//      
interface IFermentBeer{
    void fermentBeer();
}
//      
interface IFillBeer{
    void fillBeer();
}
//    
interface ICreateBeer{
    IFermentBeer getFermentBeer();
    IFillBeer getFillBeer();
}
//      
class QingDaoFactoryFermentBeer implements IFermentBeer{

    @Override
    public void fermentBeer() {
        System.out.println("         ");
    }
}
//      
class QingDaoFactoryFillBeer implements  IFillBeer{

    @Override
    public void fillBeer() {
        System.out.println("         ");
    }
}
//      
class QingDaoFactoryCreateBeer implements ICreateBeer{

    @Override
    public IFermentBeer getFermentBeer() {
        return new QingDaoFactoryFermentBeer();
    }

    @Override
    public IFillBeer getFillBeer() {
        return new QingDaoFactoryFillBeer();
    }
}
//      
class XueHuaFactoryFermentBeer implements IFermentBeer{

    @Override
    public void fermentBeer() {
        System.out.println("         ");
    }
}
//      
class XueHuaFactoryFillBeer implements  IFillBeer{

    @Override
    public void fillBeer() {
        System.out.println("         ");
    }
}
//      
class XueHuaFactoryCreateBeer implements ICreateBeer{

    @Override
    public IFermentBeer getFermentBeer() {
        return new XueHuaFactoryFermentBeer();
    }

    @Override
    public IFillBeer getFillBeer() {
        return new XueHuaFactoryFillBeer();
    }
}
class BeerFactoryMethod{
    public static void main(String[] args) {
        ICreateBeer qingDao=new QingDaoFactoryCreateBeer();
        qingDao.getFermentBeer();
        qingDao.getFillBeer();
        ICreateBeer xueHua=new XueHuaFactoryCreateBeer();
        xueHua.getFermentBeer();
        xueHua.getFillBeer();
    }
}

좋은 웹페이지 즐겨찾기