zoukankan      html  css  js  c++  java
  • 抽象工厂模式(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();
        }
        
    }

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

  • 相关阅读:
    clearfix 清除浮动的问题
    python第四十五课——继承性之多继承
    Linux基础第六课——grep|awk|sort|uniq
    Linux基础第五课——用户管理
    Linux基础第四课——文件操作
    Linux第三课——目录操作
    Linux基础第二课——系统架构
    Linux基础第一课——基础知识了解
    01 http协议概念及工作流程
    18- php Redis扩展编译
  • 原文地址:https://www.cnblogs.com/blackdeng/p/7069207.html
Copyright © 2011-2022 走看看