设计模式第二天(创建型模式)

news/2024/10/18 19:29:04/

1.抽象工厂设计模式

定义了一个接口用于创建相关或有依赖关系的对象族,而无需明确指定具体类public interface AbsFactory{Pizza createPizza(String ordertype)
}public class LDFactory implement AbsFactory{@Overrriedpublic createPizza(String orderType){Pizza pizza = null;if("cheese".equals(orderType)){pizza = new LDCheesFactory();}else if("pepper".equals(orderType)){pizza = new LDPepperPizza();}return pizza;}
}public class PizzaStroe{public static void main(string[] args){OrderPizza mOrderPizza;mOrderPizza = new OrderPizza("cheese")}
}

2.单例模式

确保一个类只有一个实例1.预加载    
public class ProloadSingLeton{public static ProloadSingLeton instance = new ProloadSingLeton();private ProloadSingLeton(){};public static ProloadSingLeton getInstance(){return instance;}
}2.懒加载
public class Singleton{private static Singleton instance = null;private Singleton(){};public static synchronized Singleton getInstance(){if(instance == null){synchronized (instance){if(instance == null){instance = new Singleton();}}}return instance;}
}

3.生成器模式

封装一个复杂对象的构造过程,允许按步骤构造
模式结构: 产品+抽象生成器+具体生产器+指挥者public abstract class ComputerBuilder{protected Computer computer;public Computer getComputer(){return computer;}public void buildComputer(){Computer computer = new Computer();System.out.println("生成一台电脑")}public abstract void buildMaster();public abstract void buildScrenn();public abstract void buildKeyboard();public abstract void buildMouse();public abstract void buildAudio();
}public class HPComputerBuilder extends ComputerBuilder{   @Overridepublic void buildMaster() {// TODO Auto-generated method stubcomputer.setMaster("i7,16g,512SSD,1060");System.out.println("(i7,16g,512SSD,1060)的惠普主机");}@Overridepublic void buildScreen() {// TODO Auto-generated method stubcomputer.setScreen("1080p");System.out.println("(1080p)的惠普显示屏");}@Overridepublic void buildKeyboard() {// TODO Auto-generated method stubcomputer.setKeyboard("cherry 青轴机械键盘");System.out.println("(cherry 青轴机械键盘)的键盘");}@Overridepublic void buildMouse() {// TODO Auto-generated method stubcomputer.setMouse("MI 鼠标");System.out.println("(MI 鼠标)的鼠标");}@Overridepublic void buildAudio() {// TODO Auto-generated method stubcomputer.setAudio("飞利浦 音响");System.out.println("(飞利浦 音响)的音响");}
}public class Director{private ComputerBuilder computerBuilder;public void setComputerBuilder(ComputerBuilder computerBuilder){this.computerBuilder = computerBuilder;}public void constructComputer(){computerBuilder.buildCompputer();computerBuilder.buildMaster();computerBuilder.buildScreen();computerBuilder.buildKeyboard();computerBuilder.buildMouse();computerBuilder.buildAudio();}
}

4. 原型模式

通过复制现有实例来创建新的实例,无需知道相应类的信息(深拷贝)public class Prototyoe implements Cloneable{public Object clone() throw Exception{Prototype proto = (Prototype) super.clean();return proto;}
}

http://www.ppmy.cn/news/157550.html

相关文章

【STM32H7】第8章 学习USB协议栈前要了解的基础知识

论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?modviewthread&tid99710 第8章 学习USB协议栈前要了解的基础知识 本章节为大家讲解USB基础知识点,学习USB前,非常有必要有个系统的认识。 目录 第8…

rca接口_从模拟接口到8K传输 显卡接口这些年变得太多

[PConline硬件编年史]在英伟达RTX30系列显卡发售前夕,我们将和跟大家一起回顾一下显卡史上的一些有趣内容,这一期我们首先来聊聊显卡视频输出接口的发展。 显卡上的视频输出接口的发展主要就是为了匹配显卡输出性能的提升,从最开始的240P和灰…

简易操作系统OS方案规划

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、二进制计算机发展史(网上摘抄)二、AOS方案规划 1、简化Linux代码量2、IPC消息包结构3、多核处理器256位内部总线和APIC三、CPU规划 …

设计模式——23种全

设计模式的分类 总体来说设计模式分为三大类 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式…

2021-03-19

转载自:https://blog.csdn.net/A1342772/article/details/91349142 设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七…

【STM32H7】第4章 ThreadX USBX协议栈基础知识

教程更新中:http://www.armbbs.cn/forum.php?modviewthread&tid108546 第4章 ThreadX USBX协议栈基础知识 本章节为大家讲解USB基础知识点,学习USB前,非常有必要有个系统的认识。 目录 4.1 初学者重要提示 4.2 USB历史 4.3 …

推荐玩游戏的计算机及型号,想买个3000左右的台式电脑,主要玩游戏,求推荐品牌还有型号。...

想买个3000左右的台式电脑,主要玩游戏,求推荐品牌还有型号。以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 想买个3000左右的台式电脑,主要玩游戏&#…

设计模式(23种)

原文链接查看原文 设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式…