黑马程序员技术交流社区

标题: 23种设计模式之工厂模式浅谈 [打印本页]

作者: bxd1013    时间: 2016-10-13 17:50
标题: 23种设计模式之工厂模式浅谈
中午突然打算开始学习23种设计模式,今天刚看了第一种工厂模式..  写下一点自己的见解, 有理解错误的话欢迎大家指正.  {:3_66:}
工厂模式就是对实现了同一接口的不同类进行实例创建,即根据你的需要直接返回给你一个实现了该接口的不同实例。(不知道理解的准不准确)。话不多说直接上代码了


//定义一个共有的车珠子接口
public interface 车珠子 {
        public abstract void 查看成品();
}



//测试类
public class Factory {
        public static void main(String[] args) {
                //普通工厂模式演示
                加工店铺 王家老店 = new 加工店铺();
                车珠子 紫檀串 = 王家老店.加工("小叶紫檀");
                紫檀串.查看成品();
                车珠子 黄花梨串 = 王家老店.加工("黄花梨");
                黄花梨串.查看成品();
                try {
                        车珠子 烂树根 = 王家老店.加工("烂树根");
                        烂树根.查看成品();
                } catch (Exception e) {
                        e.printStackTrace();
                }
               
                System.out.println("~~~~~~~~~~~~~~~~~~~~~华丽丽的分割线~~~~~~~~~~~~~~~~~~~~~~");
                //多个工厂模式演示
                成品店铺 李家老店 = new 成品店铺();
                李家老店.黄花梨().查看成品();
                李家老店.小叶紫檀().查看成品();
                System.out.println("~~~~~~~~~~~~~~~~~~~~~华丽丽的分割线~~~~~~~~~~~~~~~~~~~~~~");
                //静态工厂模式演示
                网购店铺.黄花梨().查看成品();
                网购店铺.小叶紫檀().查看成品();
               
                System.exit(0);
               
        }
}

//黄花梨继承车珠子接口, 并重写查看成品()方法
class 黄花梨手串 implements 车珠子 {
        @Override
        public void 查看成品() {
                System.out.println("2000目精抛黄花梨手串");
        }
}

//小叶紫檀继承车床接口,并重写车珠子()方法
class 小叶紫檀手串 implements 车珠子 {
        @Override
        public void 查看成品() {
                System.out.println("1000目高抛小叶紫檀手串");
        }
}

//一、普通工厂模式
//定义工厂 , 即为加工店铺    根据顾客提供的木材进行加工,返回不同的手串.
class 加工店铺 {
        public 车珠子 加工(String 木材名){
                if (木材名.equals("黄花梨")) {
                        return new 黄花梨手串();
                }else if(木材名.equals("小叶紫檀")) {
                        return new 小叶紫檀手串();
                }else {
                        System.out.println("本店暂不提供该种木材的加工!");
                        return null;
                }
        }
}

// 二、多个工厂模式
//由加工店铺直接做好手串,向顾客出售,顾客只需要根据需求去店铺购买就可以了
class 成品店铺 {
        public 车珠子 黄花梨(){
                        return new 黄花梨手串();
                }
        public 车珠子 小叶紫檀(){
                return new 小叶紫檀手串();
        }
       
}
//三、静态工厂模式
//由网购店铺直接送货上门推销,顾客直接在网上订货,不需要再去访问实体店
class 网购店铺 {
        public static 车珠子 黄花梨(){
                        return new 黄花梨手串();
                }
        public static 车珠子 小叶紫檀(){
                return new 小叶紫檀手串();
        }
}


以后有时间会一个一个模式慢慢研究。。欢迎大家指教{:3_64:}

作者: bxd1013    时间: 2016-10-13 22:07
完全没人感兴趣啊

作者: Zzh94520    时间: 2016-10-13 22:18
。。。。。。。。。。。
作者: bxd1013    时间: 2016-10-13 22:38
Zzh94520 发表于 2016-10-13 22:18
。。。。。。。。。。。

完全没兴趣么





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2