zoukankan      html  css  js  c++  java
  • 抽象工厂模式

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

     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 IAnimalFactory
    39 {
    40     public ICat createCat() {
    41         return new BlackCat();
    42     }
    43 
    44     public IDog createDog() {
    45         return new BlackDog();
    46     }    
    47 }
    48 class WhiteAnimalFactory implements IAnimalFactory
    49 {
    50     public ICat createCat() {
    51         return new WhiteCat();
    52     }
    53 
    54     public IDog createDog() {
    55         return new WhiteDog();
    56     }    
    57 }
    58 //AbstractProduct 为一类产品对象声明一个接口
    59 interface ICat
    60 {
    61     void eat();
    62 }
    63 interface IDog
    64 {
    65     void eat();
    66 }
    67 //ConcreteProduct 定义一个将被相应的具体工厂创建的产品对象
    68 class BlackCat implements ICat
    69 {
    70     public void eat() {
    71         System.out.println("the blackCat is ...");        
    72     }    
    73 }
    74 //ConcreteProduct 
    75 class WhiteCat implements ICat
    76 {
    77     public void eat() {
    78         System.out.println("the whiteCat is ...");        
    79     }    
    80 }
    81 //ConcreteProduct 
    82 class BlackDog implements IDog
    83 {
    84     public void eat() {
    85         System.out.println("the blackdog is ...");        
    86     }    
    87 }
    88 //ConcreteProduct 
    89 class WhiteDog implements IDog
    90 {
    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

    欢迎亲们评论指教。

  • 相关阅读:
    微服务之SpringCloud基础
    java 多线程学习
    tomcat性能优化
    js模块化规范
    jsonp及cors
    es6之各种数据类型的扩展
    es6之Promise
    es6之Set和Map
    es6之Generator
    es6之Iterator
  • 原文地址:https://www.cnblogs.com/xiluhua/p/4412386.html
Copyright © 2011-2022 走看看