工厂设计类、代理设计

一张图快速了解23种设计模式 设计模式 设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。 这是《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented)中对设计模式的定义。看完以后你会不会和我有一样的感觉:这特么说是啥? 于是,我找到了英文原文: The design patterns are descriptions of communicating objects and classes that are cu 阅读详情

interface Fruit {

         public void eat() ;       // 目的就是吃

}

class Apple implements Fruit {

         public void eat(){

                   System.out.println("吃苹果。") ;

         }

}

class Orange implements Fruit {

         public void eat(){

                   System.out.println("吃橘子。") ;

         }

}

class Factory {

         public static Fruit getInstance(String className) {

                   if("apple".equals(className)) {

                            return new Apple() ;

                   } else if ("orange".equals(className)) {

                            return new Orange() ;

                   } else {

                            return null ;

                   }

         }

}

public class TestDemo {

         public static void main(String args[]){

                   Fruit f = Factory.getInstance(args[0]) ;         // 通过初始化参数决定

                   f.eat() ;

         }

}

 

 

 

工厂设计:通过一个工厂类取得接口的实例化对象,这样的话,以后用户只需要维护工厂即可,而取得接口实例也只需要工厂即可。

 

 

 

 

interface Subject {        // 共同的目的

         public void get() ;         // 得到一些东西

}

class RealSubject implements Subject {

         public void get(){

                   System.out.println("小子,还钱给我。") ;

         }

}

class XxSubject implements Subject {

         public void get(){

                   System.out.println("不还钱要你命。") ;

         }

}

class ProxySubject implements Subject { // 目的也是讨债,带着真正的讨债人

         private Subject sub = null ;

         public ProxySubject(Subject sub) {         // 规定出为谁讨债

                   this.sub = sub ;

         }

         public void prepare(){  // 核心业务操作前需要准备

                   System.out.println("准备牛X讨债大全所记载的方法及材料。") ;

         }

         public void get(){         // 核心功能

                   this.prepare() ;

                   this.sub.get() ;

                   this.over() ;

         }

         public void over(){

                   System.out.println("清理现场,收取费用。") ;

         }

}

public class TestDemo {

         public static void main(String args[]){

                   Subject sub = new ProxySubject(new XxSubject()) ;

                   sub.get() ;

         }

}

 

在这样一个程序之中,RealSubject为真正的操作主题,而ProxySubject为代理的操作主题,真正的操作主题负责的是真正的业务处理,即:只关核心操作,而如果真正的操作主题没有这个代理主题的话不可能完成功能,而且代理主题要完成比真正业务主题更多的操作。

 

28、数字电路测试与半导体内存测试全解析 本文全面解析了数字电路中的顺序电路测试生成方法与半导体内存测试技术。内容涵盖顺序电路中的故障检测、多重观察测试、可驱动性分析、伪组合电路测试及初始化问题,并深入探讨了内存技术发展、故障模型、测试流程与未来趋势。重点介绍了DRAM、SRAM等主流内存类型的特点,以及制造和使用过程中面临的永久性与非永久性故障挑战,提出了基于故障模型的高效测试策略与优化方案。 阅读详情

相关推荐

保姆级教程:用GROMACS的FEP方法计算小分子结合自由能(附完整mdp配置)

本文提供了一份详细的GROMACS自由能微扰(FEP)计算教程,涵盖从系统准备、参数配置到结果分析的全流程。通过具体案例演示如何计算小分子结合自由能,包括λ窗口设计、动力学参数优化及并行化执行技巧,帮助研究者克服FEP计算中的常见问题,获得可靠的自由能数据。

weixin_30598225的博客 354

工厂设计模式与代理设计模式

思考如下场景: 有一天,某同学准备去买笔记本,到商城发现有两款电脑她特别喜欢, 一款是 Macbook Pro, 另一款是 Surface Pro。 根据以上的场景,类图可以如下表示: interface Computer { void printComputer(); } class MacbookProComputer implements Computer { pu...

ellen_mei_hua 384

【Sentaurus TCAD仿真】几种基础操作

当内存不足时,没必要删除整个Project,只需要 Clean up 节点信息即可。因为占用内存的主要部分是。文件数据,Command文件是不占用多少内存的,下次需要此工程仿真结果重新运行即可。右击可以对该工程进行剪切、复制、删除、重命名等操作。当节点号有时候排序混乱的时候,我们需要重新编排节点号。此时左侧工具栏就能看见我们新建的这个工程。运行节点时不同的颜色代表目前的状态。在这个地方添加要使用的工具。这个时候需要的工具就建好了。然后选择需要使用的工具。我们需要保存这个工程。

qq_45746744的博客 1万+

接口的工厂设计模式和代理设计模式

1.工厂设计模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一 种创建对象的最佳方式。避免了子类与父类接口的耦合关系,当接口有多个子类时,可以消除更换子类对主方法的影响。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 目的:定义一个创...

阿劼 920

Cisco Packet Tracer 7.3免登录技巧:3种方法快速跳过注册界面(附详细截图)

本文针对Cisco Packet Tracer 7.3启动时遇到的登录界面问题,提供了三种合法高效的解决方案。详细介绍了如何利用官方访客模式快速启动、注册思科账号实现一劳永逸登录,以及通过调整本地安装配置优化启动流程,帮助网络学习者与备考者绕过繁琐步骤,快速进入实验环境。

weixin_29305337的博客 742

深入解析Android Qcom Camera HAL3架构与Camx线程模块

本文深入解析了Android Qcom Camera HAL3架构与Camx线程模块的核心原理。文章以高通芯片平台为例,剖析了从按下快门到生成照片的完整Camera流程分析,重点阐述了Camx框架中线程池、消息队列及Fence同步机制如何协同工作,以实现高效、稳定的多线程并发图像处理,为相机性能优化提供理论基础。

weixin_29184075的博客 221

Java 反射:代理模式基本结构

1.代理设计模式的结构以及它的应用; 2.动态代理设计模式的实现 3.利用CGLIB实现动态代理设计模式 3.1代理设计模式的基本使用 代理设计模式最本质的特点就是:一个真实业务主题只完成核心操作,而所有与之辅助的功能都是 由代理类完成,例如:在进行数据库数据更新的操作过程之中,事务处理必须器作用。 所以此时就需要代理设计模式的使用。 范例:结合传统的代理设计模式以及DAO应用来编写代理设计...

抛弃幻想,准备斗争 344

【无标题】ReaxFF拟合参数以及算法安装

ReaxFF拟合参数以及算法安装

zmzyzm的博客 1421

反射的操作以及工厂代理

反射 1、取得class对象 2、反射与工厂设计模式 3、取得类定义结构 4、操作构造方法 5、操作方法 6、操作成员 7、jsp对反射支持 8、取得注解 9、自定义注解 10、classLoader类基本作用 11、代理基本结构 12、动态代理设计模式 ...

weixin_43527781的博客 191

五段式S型算法笔记

又因为有 v-v0= 0.5jt通式: 所以有 vm-v0= 0.5jtm 所以有4vm-4v0= 2jtm。算法1: v=2vm-v0-0.5*jt+2jt*tm-2jtm*tm。加加速度j 自己设置 已知,vmax自己设置已知;所以有4vm-4v0= 2jtm带入算法1。

qq_36658033的博客 683

【医学影像】Deep Learning for Automatic Pneumonia Detection

写在前面的话: 这篇论文是北美放射学会(RSNA)在Kaggle平台上托管的肺炎区域检测挑战赛取得第二名成绩的解决方案。因为笔者需要用到其中的图像增强方案,因此本篇博客只介绍了数据集和图像增强,关于模型的改进和其它改进点没有涉及。 论文地址:https://arxiv.org/abs/2005.13899 代码地址:https://github.com/tatigabru/kaggle-rsna 比赛地址:https://www.kaggle.com/c/rsna-pneumonia-detection-c

chenzhoujian_的博客 1567

《设计模式》代理模式

定义代理模式就是为被访问的目标对象提供一个代理,此时代理对象充当访问对象和目标对象之间的媒介,通过代理对象实现对目标对象的访问。被代理的对象可以是远程对象、创建开销大的对象以及需要安全控制的对象,Java 中的代理按照代理的生成时机不同分为静态代理和动态代理,静态代理就是在编译期就生成代理对象,而动态代理是在 Java 运行时动态生成,而动态代理又分为 JDK 动态代理和 Cglib 动态代理两种。代理模式的角色组成抽象主题类(Subject):通过接口或抽象类声明真实主题和代理对象实现的业务方法。

华仔仔的博客 4001

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1421

设计模式 | 一、工厂模式(简单工厂、工厂方法、抽象工厂)[FactoryPattern]

工厂方法模式(Fatory Method Pattern)是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。在工厂方法模式中用户只需要关心所需产品对应的工厂,无须关心创建细节,而且加入新的产品符合开闭原则。

GiraffePeng的博客 486

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

知识体系总结(四)智力类问题、海量数据处理、手撕设计类题目、设计模式

layout: post title: 八股总结(四)智力类问题、海量数据处理 description: 八股总结(四)智力类问题、海量数据处理 tag: 八股总结

芸兮的博客 964

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

设计模式——创建型模式之工厂模式

通过简单的问题深入理解设计模式之工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)到底是怎么回事!!! 三者一脉相承,各有优劣,本质都是为创建对象而服务的一种设计思想或者说设计模板。

代码之狐的博客 624

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

面向对象设计模式的六大基本原则(设计类的原则)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //方法设计(算法设计)   /////////////////////////////////////////////////////////...

qq_35406143的博客 187

软件设计模式与体系结构实验——2.1-1(2)(抽象)工厂模式的应用

使用工厂方法模式设计的汽车保险管理应用程序实例, 设计并且实现了豪华( Super)和中等(Medum)别墅(House)和公寓(Condo)的查询。

m0_52435951的博客 3668

工厂方法(Factory Method)模式

在创建类时,通常可以同时定义多个构造方法,然后让它们创建类的实例。然而有时候,客户代码虽然需要某个对象,却并不关心或者不需要关心这个对象究竟是由哪个类创建而来的。      工厂方法模式的意图是定义一个用于创建对象的接口,并控制返回哪个类的实例。      迭代器(Iterator)模式提供了用于顺序访问容器中的各个元素的方法。但是,迭代器实例却经常需要运用工厂方法模式来创建。java JDK

ArmandXu的专栏 661

同步&异步日志系统:设计模式

设计模式是前辈们对代码开发经验的总结,是解决特定问题的⼀系列套路。它不是语法规定,⽽是⼀ 套⽤来提⾼代码可复⽤性、可维护性、可读性、稳健性以及安全性的解决⽅案。

weixin_51142926的博客 2538

复习23种设计模式JAVA篇

设计模式 design Pattern 是一套被反复使用,为多少人知晓,经过分类编目的,代码设计经验的总结 23种设计模式 23种设计模式 创建型 结构型 行为型 类 FactoryMethod 工厂方法 Adapter_class(适配类型) Interpreter(解释型) Template Method 模板类型 对象 Abstract Factory(抽象工厂) Builder(生成器) P.

keny-大成的博客 5073

设计模式在jdk、spring中的应用

本文主要是归纳了JDK中所包含的设计模式和spring中包含的设计模式,包括作用和其设计类图。首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助。一、设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)适应软件不断变化二、学习JDK中设计模式的好处(1)借鉴优秀代码的设计,有助于提高代码设计能力(2)JDK的设计中体现了大多数设计模式,是学习设计...

wenjieyatou的博客 2057

Java类的设计模式

Java的23种设计模式 关于类的说明 http://c.biancheng.net/view/8375.html 单例模式 什么是单例模式:一个类只能有一个实例对象 具体实现:将构造方法私有化,本类中实例化,设计一个方法来进行实例化即可 懒汉式,单例模式 /** * 静态属性为所有对象所共享的,通过类直接调用 * 不足:在多线程中存在多个对象,线程不安全 * 懒汉式,单例模式 */ public class Single { private Single(){} //只可以实例化一

小辰 205

【C++】设计模式

C++设计模式介绍,单例模式、工厂模式、观察者模式的设计原理与源码剖析

phoenixFlyzzz的博客 2098

23种设计模式——UML类图+简要分析+例题

23种设计模式——UML类图+简要分析+例题

jiyuzzz的博客 2万+

设计模式总结

标准的设计模式有23种,简单工厂不属于标准设计模式,但用得也多。设计模式可分为3类创建型:用于设计对象的创建方式结构型:用于设计类的结构、类之间的结构行为型:用于设计类的行为。

chy-x 的博客 1284
上一篇: 一个简单的单例设计
下一篇: 判断第二个日期比第一个日期大
emjava
博客等级 码龄15年 4粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值