• 抽象工厂模式(think in java中的设计模式)


    抽象工厂模式:工厂模式是利用工厂类的工厂方法创建对象的一种设计模式,目的是创建对象,但是很多时候创建对象我们会考虑很多其他因素~~~~比如限定输入,限定返回值是否某个,比如在创建的过程中进行一些判断,通过不同的工厂模式就能把这些东西分离开来。

    抽象工厂模式则是:构建多个产品接口形成产品族,放入工厂接口中。工厂分别调用构建这些产品的方法返回的都是借口。然后不同的工厂可以实现不同的方法产生不同的产品族

    package com.dhh.day1;
    
    public class D {
        public static void main(String[] args){
            AbstractFactory f1=new Factory1();
            f1.createA();
            f1.createZ();
            AbstractFactory f2=new Factory2();
            f2.createA();
            f2.createZ();
            
        }
    
    }
    //产品A的接口与Z接口组成产品族
    interface A{
    }
    
    class B implements A{
        public B(){
            System.out.println("制造了B");
        }
        
    }
    class C implements A{
        public C(){
            System.out.println("制造了C");
        }
    }
    //产品Z的接口与A接口组成产品族
    interface Z{
    }
    
    class X implements Z{
        public X(){
            System.out.println("制造了X");
        }
        
    }
    class Y implements Z{
        public Y(){
            System.out.println("制造了Y");
        }
    }    
    //工厂接口有构建A构建B的接口方法
    interface AbstractFactory {     
        public A createA();   
        public Z createZ();   
    }    
    //实现工厂化
    class Factory1 implements AbstractFactory{
    
        @Override
        public A createA() {
            
            return new B();
        }
    
        @Override
        public Z createZ() {
            // TODO Auto-generated method stub
            return new X();
        }
        
    }
    //实现工厂化
    class Factory2 implements AbstractFactory{
    
        @Override
        public A createA() {
            
            return new C();
        }
    
        @Override
        public Z createZ() {
            // TODO Auto-generated method stub
            return new Y();
        }
        
    }

    以上是一个静态工厂的创建类的过程,创建类的所有过程都被隐藏

  • 相关阅读:
    vue全家桶
    uniapp——如何配置scss和uview ui框架
    uniapp——自定义input清除事件
    响应式页面中的echart
    elementui 切换下拉框值,改变验证规则prop的表单项是否为必填项
    小程序view标签内容 文本过长,自动换行的问题
    vue 中使用图片查看器插件Viewer.js
    跳转不同导航,滚动条滚回初始
    vue项目中回显当前时间的农历时间
    移动端点击导航滑动展示全部选项,以为跳转页面定位到相应位置
  • 原文地址:https://www.cnblogs.com/blackdeng/p/7069207.html
Copyright © 2020-2023  润新知