zoukankan      html  css  js  c++  java
  • Java设计模式之工厂设计模式

    概述

    设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
    使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
    设计模式可以分为三大类,分别是创建型、结构型和行为型。

    创建型

    工厂设计模式

    工厂设计模式是Java中非常常见的设计模式之一。它提供了一种创建对象的最佳方式。在工厂设计模式中,我们不需要向客户端提供创建的逻辑,只需通过使用一个共同的接口来指向新创建的对象
    使用场景
    定义一个创建对象的接口,让它的子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。例如购买一件商品,不需要了解它是怎样被制作出来的,只需要通过超市进行购买。
    优点
    创建对象只需要直到名称;扩展性高,想增加产品仅需添加一个工厂类;屏蔽性好,调用者无需直到创建过程
    缺点
    添加产品需要添加工厂类,若数量过多则增加了系统的复杂度。
    代码如下

    //图形接口
    public interface Shape {
    	void draw();	
    }
    //圆形的实现类
    public class Circle implements Shape {
        @Override
    	public void draw() {
    		System.out.println("我是圆形");
    	}
    }
    //正方形实现类
    public class Square implements Shape {
    	@Override
    	public void draw() {
    		System.out.println("我是正方形");
    	}
    }
    //工厂方法  提供getShape  根据调用者传入的名字进行相应的创建
    public class ShapeFactory {
    	
    	public static Shape getShape(String shape) {
    		
    		if("circle".equals(shape)) 
    			return new Circle();
    		
    		if("square".equals(shape)) 
    			return new Square();
    		
    		
    		return null;
    	}
    	
    }
    //主测试类  输出圆形
    public class JavaDemo {
    	
    	public static void main(String[] args) {
    		
    		Shape shape = ShapeFactory.getShape("circle");
    		shape.draw();
    		
    	}
    	
    }
    
  • 相关阅读:
    Spark2.0机器学习系列之12: 线性回归及L1、L2正则化区别与稀疏解
    Spark2.0机器学习系列之11: 聚类(幂迭代聚类, power iteration clustering, PIC)
    mysql 5.7.16多源复制
    Windows版 mysql 5.7.16安装
    一分钟经理人
    转 spring官方文档中文版
    MySQL执行计划 EXPLAIN参数
    sql 转 markdown
    Linux下安装MySQL5.6
    MyBatis完全使用指南
  • 原文地址:https://www.cnblogs.com/helloDuo/p/10303606.html
Copyright © 2011-2022 走看看