对象创建从农业社会到共产主义的发展
一、农业社会
最传统的创建对象的模式,每个需要使用工具的人都必须自己造一把工具,在java中的表现为调用者手动创建被调用者。
例如,在Person类中要使用Tool类,要使用一下语句:
缺点:通过new创建被调用的实例,耦合度过高。
二、工业社会
进入了工业社会,随着工厂的出现,工具是由工厂生产,使用者只需要说出需要工具的名称给工厂,工厂即提供相应的工具。
在工厂类中定义方法:
2
3 public Object getInstance(String name){
4 if(name == "ax")
5 return new Ax();
6 else if(name == "knife")
7 return new Knife();
8 else
9
10 }
11
12 }
然后,在调用者中使用以下代码,即可得到斧子:
2 Knife f = (Knife)f.getInstance("knife");
分析:在工厂设计模式中,调用者只需定位工厂,无需管理具体的实现。可以面向接口编程,让调用者和被调用者解耦。
三、共产主义-基于IoC的实现
来到共产主义,使用者甚至无需定位工厂,只要在家里说需要什么工具,然后坐等社会提供即可。
在java中即Spring依赖注入的核心思想。
过程:在调用者类中,只需要声明需要的工具(说自己需要什么),然后由Bean容器通过java的反射机制,注入工具到调用者。实例之间的依赖关系有容器提供和管理。
转载于:https://www.cnblogs.com/return/archive/2009/10/31/1593479.html
对象创建从农业社会到共产主义的发展相关推荐
- 跟JVM搞对象 -- 深度剖析对象创建和内存分配
长久以来,面向对象编程大行其道.也正是因为有了面向对象的设计思想,技术才极大程度促进了社会的发展.作为新时代农民工,即已知晓或者掌握面向对象的编程方法,那么知其然也只其所以然也是我们每个人身体力行的必 ...
- Python+OpenCV 图像处理系列(8)—— Numpy 对象及图像对象创建与赋值
1. Numpy 相关知识 1.1 Ndarray 对象 在了解 OpenCV 的图像对象之前我们先对 NumPy 的基础知识做一回顾,方便我们后续更进一步理解图像对象的一系列操作. In [2]: ...
- (1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态
1.访问控制(笔试题) 1.1 常用的访问控制符 public - 公有的 protected - 保护的 啥也不写 - 默认的 private - 私有的 1.2 访问控制符的比较 访问控制符 访问 ...
- OpenCV【零】—————cv::Mat——Mat对象创建方法
OpenCV (一)--Mat对象创建方法 目录 OpenCV (一)--Mat对象创建方法 1. cv::Mat优点及原理(本质类) 2. Mat类拷贝及对象的创建方法 3. Mat 对象元素的高效 ...
- 第163天:js面向对象-对象创建方式总结
面向对象-对象创建方式总结 1. 创建对象的方式,json方式 推荐使用的场合: 作为函数的参数,临时只用一次的场景.比如设置函数原型对象. 1 var obj = {}; 2 //对象有自己的 属性 ...
- 【JVM】Java对象创建的流程步骤
· 本文摘要 · 罗列Java创建对象的各种方式: · 讲解Java对象创建的流程步骤: 一.Java创建对象的各种方式 · 1. 用关键字new,老少皆知的方法:StringBuffer sb = ...
- 2018.3.31 设计模式之生成器模式详解及例子(对象创建型模式)
设计模式之生成器模式(对象创建型模式) 1.定义/概念 将一个复杂对象的创建和它的表示分离,使得同样的创建过程可以有不同的表示. 2.生成模式角色 Builder: 生成器接口,定义创建一个Produ ...
- Objective-C设计模式——生成器Builder(对象创建)
生成器 生成器,也成为建造者模式,同样是创建对象时的设计模式.该模式下有一个Director(指挥者),客户端知道该类引用用来创建产品.还有一个Builder(建造者),建造者知道具体创建对象的细节. ...
- 【设计模式】代理模式 ( 动态代理使用流程 | 创建目标对象 | 创建被代理对象 | 创建调用处理程序 | 动态创建代理对象 | 动态代理调用 )
文章目录 前言 一.静态代理的弊端 二.动态代理的优势 三.动态代理使用流程 1.目标对象接口 2.被代理对象 3.调用处理程序 4.客户端 四.动态生成 代理对象 类 的 字节码 文件数据 前言 代 ...
- java简述对象的组合_Java程序运行和对象创建过程简述
Java中一个对象创建分为两个步骤: 加载类,创建对象. 加载类是将所写的程序.java文件编译生成的.class文件加载到内存中,保证了对象创建的预置环境.类加载完毕后才可以创建该类的对象. 第一步 ...
最新文章
- 阿里云服务器 安全狗外部访问mysql_阿里云linux/centos服务器安全狗安装
- linux下文件系统不丢数据扩容方法
- 怎么把本地项目和远程git仓库相连通
- Android之linux基础教学之八 内核同步介绍
- Dynamics CRM中的操作(action)是否是一个事务(transaction)?
- Mysql视图权限设置的踩坑经历
- 固定底部 布局_Google Flutter 布局(四)-Baseline IntrinsicWidth详解
- 从零开始系类——电子元器件识别与检测技术
- uniapp引入阿里巴巴矢量图标库
- Visual Studio 2013 、Matlab 2014产品密钥
- C-Lodop使用及常见错误排查
- 数字通信系统误码性能仿真分析
- 错误1311。没有找到源文件:D:\MSOCache\All Users\{90150000-0015-0804-1000-0000000FF1CE}-D\AccLR.CAB。请确认存在该文件,并且您
- Android DocumentFile基本使用
- java实现 腾讯人机验证 + 前端
- 2023牛客寒假算法基础集训营4_20230130「向上取整」「夹逼dp」「lowbit科学+树状数组性质」「搜索」「倍增跳表」「莫队」
- 2020-06-03:抢红包设计
- C语言——将数字和数字字符输入给char型变量会如何?
- 【vite+pinia】
- 打造智慧工地,低代码平台助力基建行业全链路数字化升级