A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

bxd1013

初级黑马

  • 黑马币:27

  • 帖子:18

  • 精华:0

© bxd1013 初级黑马   /  2016-10-13 17:50  /  895 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

中午突然打算开始学习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:}

3 个回复

倒序浏览
回复 使用道具 举报
。。。。。。。。。。。
回复 使用道具 举报
Zzh94520 发表于 2016-10-13 22:18
。。。。。。。。。。。

完全没兴趣么
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马