zoukankan      html  css  js  c++  java
  • 011.day011

    day11笔记

    一、单例模式

    1.类型

    1)单例模式-饿汉式

    当获得到单例对象时,就已经是一个实例化后的对象

    private static Boss boss = new Boss();
    	// 声明为私有的构造方法后,可以在当前类下正常调用
    	// 在当前类下定义一个自身类型的成员,用于接收(由私有构造方法创建)实例
    	// 使用static声明后,已经基本实现了功能
    	public static Boss getBoss() {
    		return boss;
    	}
    

    2)单例模式-懒汉式

    需要用到对象的时候才去实例化,每次实例化前先进行检查,如果已经实例化则直接取用

    private static Boss boss;
    	
    	// 通过static声明后的成员变量可以实现共享
    	// 通过其他方法获取实例后,通过set方法覆盖掉之前产生的实例
    	// 将已经获取到的单例实例传入,依然是单例本身
    	/*public void setBoss(Boss boss) {
    		
    	}*/
    	
    	public static Boss getBoss() {
    		// 每次返回的都是同一个实例
    		// 懒汉式:在使用时(getBoss)方法调用时先进行检查,如果已经实例化则直接返回,否则创建一个再返回
    		if (boss == null) {
    			boss = new Boss();
    		}
    		return boss;
    	}
    

    2.案例

    1. 案例场景

    一个公司只有一个老板,各部门员工需要向老板汇报工作或发起流程申请

    2.业务流程

    老板有可能不在公司,在公司时可以正常处理工作,不在公司时员工的行为不能成功执行

    3.模型设计

    • Boss(单例模式->只有一个类的实例)
    • 销售
    • 行政
    • 财务

    4.实现过程

    二、工厂模式

    1. 案例场景

    用户提出一个描述性的订购需求,直接联系到服装厂,服装厂根据用户的需求给出相应的回应

    2. 业务流程

    获取用户的需求信息,如果能够满足需要则通知相应的生产车间(实例化相应的对象),进行供货,如果不能满足(判空处理)则给出相应的回应

    3. 模型设计

    • 服装厂(接口)
    • 夏季服装生产车间(服装厂的实现类)
    • 冬季服装生产车间(服装厂的实现类)

    4. 实现过程

  • 相关阅读:
    Domain Model & Code First
    业务逻辑-Domain Model
    业务逻辑层-Active Record
    业务逻辑层-Transaction Script
    Web项目结构分层
    Autofac集成webform和mvc项目
    Autofac依赖注入应用
    在Jetson TX2上安装OpenCV(3.4.0)
    目标检测之yolo源码分析
    USB设备驱动模型
  • 原文地址:https://www.cnblogs.com/yokii/p/9374535.html
Copyright © 2011-2022 走看看