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的实现方法");
     }
     
     }
  • 相关阅读:
    Mysql基本数据操作
    Mysql安装及自动化部署脚本方案
    CSS应用内容补充及小实例
    CSS详解
    python 装饰器
    HTML基础
    python 异常处理
    python生成器及迭代器
    python模块(二)
    python字符串格式化
  • 原文地址:https://www.cnblogs.com/flyingsir/p/3998762.html
Copyright © 2011-2022 走看看