首页 技术 正文
技术 2022年11月9日
0 收藏 364 点赞 4,061 浏览 1192 个字
  • 关于设计模式


设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结,是一种设计思维,使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化。使用设计模式,使得开发变得更规范和简单。

  • 工厂模式


  1. 概述:属于创建型设计模式,需要生成的对象叫做产品 ,生成对象的地方叫做工厂。
  2. 使用场景:在任何需要生成复杂对象的地方,都可以使用工厂方法模式, 直接用new可以完成的不需要用工厂模式。个人理解,重点就是这个复杂 (构造函数有很多参数)和 是否可以 直接用new。
  • 工厂模式例子


假设现在的场景是某个宝马子生产公司,正在按需求生产宝马汽车,那么,如下:

  1. 公司具有宝马汽车,该公司的汽车都有共同的行为所以有了该汽车公司的一个接口,用来规范该公司的所有汽车的行为属性,这里假设,只有展示行为——show();
  2.  1 /**
    2 * 接口:定义该公司产品的通用属性和行为
    3 * @author
    4 *
    5 */
    6
    7 public interface BmwCar {
    8
    9 public String showBmwCar();
    10 }
  3. 具体实现该接口,也就是实现该公司符合该要求的汽车产品,如下,假设,该生产公司只生产Bmw523和Bmw320两个产品;
  4. 1 public class Bmw523 implements BmwCar{
    2
    3 @Override
    4 public String showBmwCar() {
    5 String Bmw523Info = "我是Bmw523";
    6 return Bmw523Info;
    7 }
    8
    9 }
    public class Bmw320 implements BmwCar{    @Override
    public String showBmwCar() {
    String Bmw320Info = "我是Bmw320";
    return Bmw320Info;
    }}
  5. 来一个具体生产创作汽车产品的具体工厂BmwFactory;
  6.  1 /**
    2 * 具有生产功能的工厂
    3 * @author
    4 *
    5 */
    6
    7 public class BmwFactory {
    8
    9 public BmwCar createBmw320() {
    10 return new Bmw320();
    11 }
    12
    13 public BmwCar createBmw532() {
    14 return new Bmw523();
    15 }
    16 }
  7. 来一个实例测试,我要买车啦
  8.  1 public class TestCreateBmw {
    2
    3 public static void main(String[] args) {
    4
    5 BmwFactory myFactory = new BmwFactory();//实例化工厂
    6 BmwCar myBmw = myFactory.createBmw320();//实例化一个产品
    7 System.out.println( myBmw.showBmwCar() );//使用该产品
    8 }
    9
    10 }

*

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,494
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295