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的实现方法");
     }
     
     }
  • 相关阅读:
    maven 错误:读取 xxx.jar 时出错;invalid LOC header (bad signature) 1 错误
    设计模式总结篇系列:建造者模式(Builder)
    java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to
    Rxlifecycle使用详解,解决RxJava内存泄露问题
    详细解析RxAndroid的使用方式
    Android开源项目:GifView——Android显示GIF动画
    Rxjava2的学习与总结
    Pycharm连接gitlab
    Pycharm+Django+Python+MySQL开发 后台管理数据库
    Django-Model操作数据库(增删改查、连表结构)
  • 原文地址:https://www.cnblogs.com/flyingsir/p/3998762.html
Copyright © 2011-2022 走看看