• 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的实现方法");
     }
     
     }
  • 相关阅读:
    win7 x64怎么枚举所有快捷键呢
    C/C++多种方法获取文件大小
    中缀表达式转后缀表达式(逆波兰表达式)
    检测文件存在的四种方法
    透明窗口与不规则窗口制作方法总结
    Struts 2命令执行漏洞
    Windows 8 无法安装
    从浏览器启动客户端程序
    tesseractocr训练方法
    Algorithm Gossip: 中序式轉後序式(前序式)
  • 原文地址:https://www.cnblogs.com/flyingsir/p/3998762.html
Copyright © 2020-2023  润新知