首页 > 其他分享 >工厂模式

工厂模式

时间:2023-01-04 16:24:58浏览次数:27  
标签:原则 phone 模式 工厂 Phone 手机 public

设计模式六大原则:

  1. 开放封闭原则
    对扩展开放,对修改关闭,在增加新功能的时候,能不改代码尽量不修改。
  2. 单一职责原则
  3. 里氏替换原则
    调用父类方法可以执行,调用子类方法也应该完全可以。
  4. 依赖倒置原则
  5. 接口隔离原则
  6. 迪米特原则

工厂模式

用来封装和管理类的创建,对于类创建步骤比较复杂的代码,使用工厂模式简化创建。

简单工厂


分为三步:

  1. 创建手机接口
  2. 实现具体的手机类
  3. 实现工厂类
public interface Phone{
	void call();
}
public class IPhone implements Phone{
	public void call(){
		System.out.println("苹果手机");
	}
}

public class HuaweiPhone implements Phone{
	public void call(){
		System.out.println("苹果手机");
	}
}
public class PhoneFactory{
	public Phone create(String brand){
		Phone phone=null;
		Switvh(brand){
			case "iphone":
				phone=new IPhone();
				break;
			case "huawei":
				phone=new HuaweiPhone();
				break;
			default:
				break;
		}
		return phone;
	}
}

弊端:新加一个小米手机会修改工厂类的switch方法,这就违背了开闭原则。

工厂方法

简单工厂与工厂方法对比:

工厂方法把工厂类进行了抽象化,假如果新加入一个手机,那么只需要实现一个小米手机类与小米手机工厂类,解决了开闭原则。

抽象工厂模式

如何抉择?

如果产品结构单一,那么可以选择工厂模式,如果产品结构不单一,那么选择抽象工厂模式

标签:原则,phone,模式,工厂,Phone,手机,public
From: https://www.cnblogs.com/handsometaoa/p/17025186.html

相关文章

  • 数字化工厂仿真软件让管理越精细,决策更科学
    数字化仿真软件的出现确实给大多数行业带来了方便,数字化工厂仿真软件在运行过程中,将工厂设备运行状态反映到线上虚拟可视化,作出判断、分析和优化。广州华锐互动构建的数字......
  • unity3d,android平台下,高德地图定位,定位模式设定
    接上一篇,有时候不是想偷懒,实在是不会用androidstudio再次打包啊。高德地图定位androidsdk中,设置定位模式,java代码如下://设置定位模式为高精度模式,Battery_Saving为低功耗......
  • 工厂模式C++实现 (内附简单源码实现)
    抽象工厂模式为什么要用抽象工厂模式?*举个实际应用的例子,一个显示器电路板厂商,旗下的显示器电路板种类有非液晶的和液晶的;这个时候,厂商建造两个工厂,工厂A负责生产非......
  • 面试官:Docker 有几种网络模式?5 年工作经验都表示答不上来。。
    本文作者:知知行行本文链接:https://www.cnblogs.com/loronoa/p/16566818.htmldocker容器网络Docker在安装后自动提供3种网络,可以使用dockernetworkls命令查看[root@l......
  • 设计模式之开闭原则
    面向对象程序应该对扩展开放,对更改封闭。如果更改代码,要重新编译,重新测试,重新部署,会附带很多其他操作。python可以使用鸭子模式,进行多态调用。如下,a和b可以独立变化,不......
  • ubuntu安装过程(双系统模式)中遇到的坑
    笔者在安装上win11后,看我的M.2硬盘太大,就想着以双系统方式再安装上个ubuntu,以方便以后使用。没想到和win11一样,也是连遇到挫折,一番折腾后最终才成功。下面记录下安装要点。......
  • linux命令行模式下实现代理上网 专题
    有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了!一、命令......
  • 上海或北京和分析模式专家Eduardo B. Fernandez交流
    EduardoB.Fernandez这段时间在中国度假,他很希望有机会和中国的软件开发人员交流。感兴趣的同学,如果刚好在Fernandez教授所在地点附近,可以买他的书上门求签名并交流---【不......
  • 分析模式(1)幻灯片
    分析模式(1)幻灯片......
  • 重学 Java 设计模式-结构型模式-适配器模式
    重学Java设计模式-结构型模式-适配器模式内容摘自:添加链接描述适配器模式介绍图片来自:https://refactoringguru.cn/design-patterns/adapter(opensnewwindow)适......