zoukankan      html  css  js  c++  java
  • AbstractFactory

    AbstractFactory
    
    Imagemap
     hideAbstractFactory
    hideTest
    /**
     * 抽象工厂模式
     * @author 
     *
     */
     public class Test {
     public static void main(String[] args) {
     // 定义出两个工厂
     AbstractCreator creator1 = new Creator1();
     AbstractCreator creator2 = new Creator2();
     
     // 产生A1对象
     AbstractProductA a1 = creator1.createProductA();
     // 产生2对象
     AbstractProductA a2 = creator2.createProductA();
     
     // 产生B1对象
     AbstractProductB b1 = creator1.createProductB();
     // 产生B2对象
     AbstractProductB b2 = creator2.createProductB();
     }
     }
    
    hideAbstractCreator
    /**
     * 抽象工厂
     * 
     * @author 
     * 
     */
     public abstract class AbstractCreator {
     /**
     * 创建A产品族
     * 
     * @return
     */
     public abstract AbstractProductA createProductA();
     
     /**
     * 创建B产品族
     * 
     * @return
     */
     public abstract AbstractProductB createProductB();
     }
    
    hideCreator1
    /**
     * 产品等级1的实现类
     * 
     * @author lyq
     * 
     */
     public class Creator1 extends AbstractCreator {
     
     /**
     * 只产生产品等级为1的A产品
     */
     public AbstractProductA createProductA() {
     return new ProductA1();
     }
     
     /**
     * 只产生产品等级为1的B产品
     */
     public AbstractProductB createProductB() {
     return new ProductB1();
     }
     
     }
    
    hideAbstractProductA
    /**
     * 抽象产品类
     *
     */
     public abstract class AbstractProductA {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductA1
    /**
     * 产品A1的实现类
     * 
     */
     public class ProductA1 extends AbstractProductA {
     
     @Override
     public void doSomething() {
     System.out.println("产品A1的实现方法");
     
     }
     }
    
    hideAbstractProductB
    /**
     * 抽象产品类
     * 
     */
     public abstract class AbstractProductB {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductB1
    /**
     * 产品B1的实现类
     * @author lyq
     *
     */
     public class ProductB1 extends AbstractProductB{
     
     @Override
     public void doSomething() {
     System.out.println("产品B1的实现方法");
     }
     
     }
    
    hideCreator2
    /**
     * 产品等级2的实现类
     * 
     * @author 
     * 
     */
     public class Creator2 extends AbstractCreator {
     
     /**
     * 只产生产品等级为2的A产品
     */
     public AbstractProductA createProductA() {
     return new ProductA2();
     }
     
     /**
     * 只产生产品等级为2的B产品
     */
     public AbstractProductB createProductB() {
     return new ProductB2();
     }
     
     }
    
    hideAbstractProductA
    /**
     * 抽象产品类
     *
     */
     public abstract class AbstractProductA {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductA2
    /**
     * 产品A2的实现类
     * @author 
     *
     */
     public class ProductA2 extends AbstractProductA {
     
     @Override
     public void doSomething() {
     System.out.println("产品A2的实现方法");
     }
     
     }
    
    hideAbstractProductB
    /**
     * 抽象产品类
     * 
     */
     public abstract class AbstractProductB {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductB2
    /**
     * 产品B2的实现类
     * @author 
     *
     */
     public class ProductB2 extends AbstractProductB {
     
     @Override
     public void doSomething() {
     System.out.println("产品B2的实现方法");
     }
     
     }
    AbstractFactory
        Test
            AbstractCreator
                Creator1
                    AbstractProductA
                        ProductA1
                    AbstractProductB
                        ProductB1
                Creator2
                    AbstractProductA
                        ProductA2
                    AbstractProductB
                        ProductB2
    AbstractFactory
    
    Imagemap
     hideAbstractFactory
    hideTest
    /**
     * 抽象工厂模式
     * @author 
     *
     */
     public class Test {
     public static void main(String[] args) {
     // 定义出两个工厂
     AbstractCreator creator1 = new Creator1();
     AbstractCreator creator2 = new Creator2();
     
     // 产生A1对象
     AbstractProductA a1 = creator1.createProductA();
     // 产生2对象
     AbstractProductA a2 = creator2.createProductA();
     
     // 产生B1对象
     AbstractProductB b1 = creator1.createProductB();
     // 产生B2对象
     AbstractProductB b2 = creator2.createProductB();
     }
     }
    
    hideAbstractCreator
    /**
     * 抽象工厂
     * 
     * @author 
     * 
     */
     public abstract class AbstractCreator {
     /**
     * 创建A产品族
     * 
     * @return
     */
     public abstract AbstractProductA createProductA();
     
     /**
     * 创建B产品族
     * 
     * @return
     */
     public abstract AbstractProductB createProductB();
     }
    
    hideCreator1
    /**
     * 产品等级1的实现类
     * 
     * @author lyq
     * 
     */
     public class Creator1 extends AbstractCreator {
     
     /**
     * 只产生产品等级为1的A产品
     */
     public AbstractProductA createProductA() {
     return new ProductA1();
     }
     
     /**
     * 只产生产品等级为1的B产品
     */
     public AbstractProductB createProductB() {
     return new ProductB1();
     }
     
     }
    
    hideAbstractProductA
    /**
     * 抽象产品类
     *
     */
     public abstract class AbstractProductA {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductA1
    /**
     * 产品A1的实现类
     * 
     */
     public class ProductA1 extends AbstractProductA {
     
     @Override
     public void doSomething() {
     System.out.println("产品A1的实现方法");
     
     }
     }
    
    hideAbstractProductB
    /**
     * 抽象产品类
     * 
     */
     public abstract class AbstractProductB {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductB1
    /**
     * 产品B1的实现类
     * @author lyq
     *
     */
     public class ProductB1 extends AbstractProductB{
     
     @Override
     public void doSomething() {
     System.out.println("产品B1的实现方法");
     }
     
     }
    
    hideCreator2
    /**
     * 产品等级2的实现类
     * 
     * @author 
     * 
     */
     public class Creator2 extends AbstractCreator {
     
     /**
     * 只产生产品等级为2的A产品
     */
     public AbstractProductA createProductA() {
     return new ProductA2();
     }
     
     /**
     * 只产生产品等级为2的B产品
     */
     public AbstractProductB createProductB() {
     return new ProductB2();
     }
     
     }
    
    hideAbstractProductA
    /**
     * 抽象产品类
     *
     */
     public abstract class AbstractProductA {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductA2
    /**
     * 产品A2的实现类
     * @author 
     *
     */
     public class ProductA2 extends AbstractProductA {
     
     @Override
     public void doSomething() {
     System.out.println("产品A2的实现方法");
     }
     
     }
    
    hideAbstractProductB
    /**
     * 抽象产品类
     * 
     */
     public abstract class AbstractProductB {
     /**
     * 每个产品共有的方法
     */
     public void shareMethod() {
     
     }
     
     /**
     * 每个产品相同的方法,不同的实现
     */
     public abstract void doSomething();
     }
    
    leafProductB2
    /**
     * 产品B2的实现类
     * @author 
     *
     */
     public class ProductB2 extends AbstractProductB {
     
     @Override
     public void doSomething() {
     System.out.println("产品B2的实现方法");
     }
     
     }
  • 相关阅读:
    Spring bean的自动装配
    JSP三大指令
    JSP九大内置对象
    Java异常的捕获顺序(多个catch)
    Integer.parseInt(s)和Integer.valueOf(s)之间的区别
    mysql忘记密码(MySQL5.7)
    java的四种内部类
    内存泄露查询
    深度优先和广度优先比较
    循环队列
  • 原文地址:https://www.cnblogs.com/flyingsir/p/3998762.html
Copyright © 2011-2022 走看看