zoukankan      html  css  js  c++  java
  • 第二节:原型模式的应用

    一、原型模式在 Spring 框架中源码分析

      1、Spring 中原型 bean 的创建,就是原型模式的应用;

      2、代码分析+Debug 源码

        

       3、代码

     1 public class Monster {
     2 
     3     private Integer id = 10 ;
     4     private String nickname = "牛魔王";
     5     private String skill = "芭蕉扇";
     6     public Monster() {
     7         
     8         System.out.println("monster 创建..");
     9     }
    10     public Monster(Integer id, String nickname, String skill) {
    11         //System.out.println("Integer id, String nickname, String skill被调用");
    12         this.id = id;
    13         this.nickname = nickname;
    14         this.skill = skill;
    15     }
    16     
    17     public Monster( String nickname, String skill,Integer id) {
    18         
    19         this.id = id;
    20         this.nickname = nickname;
    21         this.skill = skill;
    22     }
    23     public Integer getId() {
    24         return id;
    25     }
    26     public void setId(Integer id) {
    27         this.id = id;
    28     }
    29     public String getNickname() {
    30         return nickname;
    31     }
    32     public void setNickname(String nickname) {
    33         this.nickname = nickname;
    34     }
    35     public String getSkill() {
    36         return skill;
    37     }
    38     public void setSkill(String skill) {
    39         this.skill = skill;
    40     }
    41     @Override
    42     public String toString() {
    43         return "Monster [id=" + id + ", nickname=" + nickname + ", skill="
    44                 + skill + "]";
    45     }
    46     
    47     
    48 }
    49 -------------------------Test类---------------------
    50 public class ProtoType {
    51 
    52     public static void main(String[] args) {
    53         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
    54         // 获取monster[通过id获取monster]
    55         Object bean = applicationContext.getBean("id01");
    56         System.out.println("bean" + bean); // 输出 "牛魔王" .....
    57         
    58         Object bean2 = applicationContext.getBean("id01");
    59         
    60         System.out.println("bean2" + bean2); //输出 "牛魔王" .....
    61 
    62         System.out.println(bean == bean2); // false
    63         
    64         // ConfigurableApplicationContext
    65     }
    66 
    67 }

      配置文件:

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <beans xmlns="http://www.springframework.org/schema/beans"
    3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5     <!-- 这里我们的 scope="prototype" 即 原型模式来创建 -->
    6     <bean id="id01" class="com.java.spring.bean.Monster"
    7           scope="prototype"/>
    8 </beans>

    二、

  • 相关阅读:
    input只允许输入正整数
    CSS如何作小于1PX的边
    时间戳的处理
    图片转base64上传,视频同理。
    APIcloud微信支付和支付宝支付(方案2,主要在后台进行)
    H5滑条(input type=range)
    checkbox/radio 样式修改
    APIcloud制作APP 微信支付与支付宝支付
    JS获取鼠标左(右)滑事件
    DOM(Document object madle) 文档对象模型: 元素节点 文本节点 属性节点
  • 原文地址:https://www.cnblogs.com/niujifei/p/14243722.html
Copyright © 2011-2022 走看看