博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抽象工厂模式
阅读量:6077 次
发布时间:2019-06-20

本文共 2423 字,大约阅读时间需要 8 分钟。

设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

1 package designPattern; 2 /** 3  * 抽象工厂模式 4  * @author Administrator 5  */ 6 public class A3_AbstractFactoryTest { 7  8     /** 9      *  提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。10      *  1.一个系统要独立于它的产品的创建、组合和表示时。11      *    2.一个系统要由多个产品系列中的一个来配置时。12      *    3.当你要强调一系列相关的产品对象的设计以便进行联合使用时。13      *    4.当你提供一个产品类库,而只想显示它们的接口而不是实现时。14      */15     public static void main(String[] args) {16         IAnimalFactory whiteAnimalFactory=new WhiteAnimalFactory();17         ICat whiteCat=whiteAnimalFactory.createCat();18         whiteCat.eat();19         20         IAnimalFactory blackAnimalFactory=new BlackAnimalFactory();21         ICat blackCat=blackAnimalFactory.createCat();22         blackCat.eat();23         24         IDog whiteDog=whiteAnimalFactory.createDog();25         whiteDog.eat();26         27         IDog blackDog=blackAnimalFactory.createDog();28         blackDog.eat();29     }30 }31 //AbstractFactory 声明一个创建抽象产品对象的操作接口32 interface IAnimalFactory 33 {34     ICat createCat();35     IDog createDog();36 }37 //ConcreteFactory 声明一个创建具体产品对象的接口38 class BlackAnimalFactory implements IAnimalFactory39 {40     public ICat createCat() {41         return new BlackCat();42     }43 44     public IDog createDog() {45         return new BlackDog();46     }    47 }48 class WhiteAnimalFactory implements IAnimalFactory49 {50     public ICat createCat() {51         return new WhiteCat();52     }53 54     public IDog createDog() {55         return new WhiteDog();56     }    57 }58 //AbstractProduct 为一类产品对象声明一个接口59 interface ICat60 {61     void eat();62 }63 interface IDog64 {65     void eat();66 }67 //ConcreteProduct 定义一个将被相应的具体工厂创建的产品对象68 class BlackCat implements ICat69 {70     public void eat() {71         System.out.println("the blackCat is ...");        72     }    73 }74 //ConcreteProduct 75 class WhiteCat implements ICat76 {77     public void eat() {78         System.out.println("the whiteCat is ...");        79     }    80 }81 //ConcreteProduct 82 class BlackDog implements IDog83 {84     public void eat() {85         System.out.println("the blackdog is ...");        86     }    87 }88 //ConcreteProduct 89 class WhiteDog implements IDog90 {91     public void eat() {92         System.out.println("the whitedog is ...");        93     }    94 }

 

环境:JDK1.6,MAVEN,tomcat,eclipse

源码地址:http://files.cnblogs.com/files/xiluhua/designPattern.rar

欢迎亲们评论指教。

转载地址:http://vfxgx.baihongyu.com/

你可能感兴趣的文章
TortoiseGit日常使用指南
查看>>
ubuntu安装mongodb
查看>>
MVC4 EF linq从客户端中检测到有潜在的危险的Request.Path值
查看>>
MariaDB数据库备份与恢复
查看>>
Struts2中checkboxlist标签——应用、实现换行
查看>>
我的友情链接
查看>>
MySQL字符类型存放不同字符所占字节问题确认
查看>>
力战SDRAM(三)
查看>>
Lync 2010 学习(十三),手机登陆过程
查看>>
Datatables的自定义columns渲染与事件注册冲突解决
查看>>
异步获取EJB 服务实例
查看>>
######建立两台主机之间的ssh信任通道
查看>>
windows server迁移工具
查看>>
PHP连接mysql时mysql_connect()函数不可用,报500错误
查看>>
php console
查看>>
Hibernate注解-实体类注解
查看>>
学习liunx决心书
查看>>
PHP 解析Maildir 邮件格式(eml文件)
查看>>
提升iOS审核通过率之“IPv6兼容测试”
查看>>
thinkphp配置文件数据库段配置
查看>>