《Head First 设计模式》之工厂模式
2024-09-21 06:42:14
工厂模式(Factory)
- 依赖倒置原则(Dependency Inversion Principle):依赖抽象,不要依赖具体类。
- 变量不可以持有具体类的引用。(如果使用new,就会持有具体类的引用。可以改用工厂来避开这样的做法。)
- 不要让类派生自具体类。(如果派生自具体类,就会依赖具体类。请派生自一个抽象(接口或抽象类))
- 不要覆盖类中已实现的方法。
- 要点
- 所有的工厂都是用来封装对象的创建
- 工厂方法使用继承:把对象的创建委托给子类,子类实现工厂方法来创建对象。
- 抽象工厂使用对象组合:对象的创建被实现在工厂接口所暴露出来的方法中。
- 所有工厂模式都通过减少应用程序和具体类之间的依赖促进松耦合。
1. 简单工厂
2. 工厂方法模式
——定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
3. 抽象工厂模式
——提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
最新文章
- WebGL与three.js
- Spring学习记录(三)---bean自动装配autowire
- 20145304 第五周Java学习报告
- Oracle 精简绿色版客户端的配置
- 基于RSA securID的Radius二次验证java实现(PAP验证方式)
- GreenOpenPaint的实现(一)基本框架
- clear-fix清除浮动的两种写法
- linux系统下安装jdk、tomcat、mysql、redis
- 做移动端电子签名发现canvas的 一些坑
- 小强学渲染之Unity Shader编程HelloWorld
- Codeforces Round #541 (Div. 2) (A~F)
- 论文阅读(XiangBai——【AAAI2017】TextBoxes_A Fast Text Detector with a Single Deep Neural Network)
- SQL Developer连接Oracle出现“IO 错误:Undefined Error”
- Doors Breaking and Repairing CodeForces - 1102C (思维)
- 13. 字符串转为json对象或json数组
- [转帖] 常见的cmd命令
- CentOS 安装Passenger
- ACM-ICPC 2018 南京赛区网络预赛 E AC Challenge 状压DP
- SpringMVC XXX-servlet.xml ApplicationContext.xml
- Vue——解决[Vue warn]: Invalid prop: custom validator check failed for prop ";index";. found in错误
热门文章
- mysql索引的应用场景以及如何使用
- Setup ";EQGRP_Lost_in_Translation"; Of NAS
- 浅谈iOS开发中多语言的字符串排序
- Python多继承解析顺序的C3线性算法流程解析
- 【算法笔记】B1051 复数乘法
- TD-LTE技术原理与系统设计
- c# 如何得到一个字符的ASCII码
- [目录]hybrid app 开发实战(基于ionic,cordova,angularjs)
- MySQL使用内置函数来进行模糊搜索(locate()等)
- Linux 命令 -- chmod