汽车制造行业网站模板西安建网站价格低

张小明 2026/3/2 21:28:31
汽车制造行业网站模板,西安建网站价格低,西部数码网站管理助手 提权,河西网站建设公司封装的好处#xff1a; 1、为了更加方便调用#xff0c;一些固定参数不用多次写入。 2、同时如果底层代码修改#xff0c;例如#xff1a;传入参数如果有变动#xff0c;你有100处位置调用了此方法#xff0c;如果不用封装#xff0c;需要修改100次。用了封装#xff0…封装的好处1、为了更加方便调用一些固定参数不用多次写入。2、同时如果底层代码修改例如传入参数如果有变动你有100处位置调用了此方法如果不用封装需要修改100次。用了封装只需要修改封装的函数即可。继承的好处1、继承是为了一些共性的方法不用多次定义例如定义一个人的参数。需要分出老人、儿童、男人、女人。定义身高、体重、年龄、外貌等。 身高、体重、年龄为共性 可以在父类定义子类只需要定义外貌即可。不需要重复定义身高、体重、年龄。接口的好处1、具体代码实现看下面方便理解例如存在一个支付接口存在多种类型支付。不可能在业务层把所有支付渠道都定义好屎山代码。接口存在的意义就是可以让业务层接收接口类型的参数即可。不需要知道是什么类传输进来。2、接口不是为了少写代码、避免重复定义一类行为的统一标准。类似于支付的规则 必须给那些参数才可以使用。3、接口让【算法】和【数据】彻底分离这是关键业务层只关心“什么时候支付、支付多少钱”不关心“怎么支付”4、接口是大型系统“协作边界”在真实工程里接口不是给 JVM 用的 是给人用的定义规范然后给人直接使用。这是团队协作、插件化、微服务的基础5、通过下面的例子 也就能理解了在调试代码的时候命名看到的类型是PayService 但是在实际调用的时候找不到对应的实现或者跳转到别的类里面去了。就是因为PayService 是接口类型在运行时会跳转到对象的指向的类里面具体实现的方法。**多态**接口 继承的衍生把三者放在一个维度里对比非常重要特性 解决的问题封装隐藏细节减少修改范围继承表达“是什么”复用共性接口表达“能做什么”隔离变化一、封装Encapsulation——最重要但最容易被忽略1️⃣ 是什么把“怎么做”藏起来只告诉你“能做什么”2️⃣ 例子贴近你刚才的问题❌ 不封装坏Constructor?cReflectionFactory.getReflectionFactory().newConstructorForSerialization(cls,Object.class.getDeclaredConstructor());c.setAccessible(true);Objectobjc.newInstance();你用一次要记一堆细节。✅ 封装后好ObjectobjSerializeUtils.createWithoutConstructor(cls);3️⃣ 为什么要用问题 封装解决什么实现会变 调用方不用改代码难读 方法名就是说明易误用 不给你机会乱传参数可维护性 改一处全生效 你刚才问的那个问题本质就是封装的意义二、继承Inheritance——复用 表达“是什么”1️⃣ 是什么子类是父类的一种is-a2️⃣ 例子classAnimal{voidspeak(){System.out.println(some sound);}}classDogextendsAnimal{voidbark(){System.out.println(wang);}}3️⃣ 为什么要用不用继承会怎样classDog{voidspeak(){...}voideat(){...}voidsleep(){...}}classCat{voidspeak(){...}voideat(){...}voidsleep(){...}} 重复代码 修改一个行为要改一堆类用继承后classAnimal{voideat(){}voidsleep(){}}4️⃣ 什么时候不该用继承⚠️ 如果只是“像”不是“就是”→ 不该继承比如class Car extends Engine ❌三、多态Polymorphism——同一接口不同行为之前一直在问OrderService 怎么知道 payService 是 Alipay答案现在你应该能对上了OrderService 不知道JVM 在运行时根据“对象真实类型”决定调用哪个方法这就是 多态没有多态if(typeALIPAY){alipay.pay();}elseif(typeWECHAT){wechat.pay();}elseif(typeUNIONPAY){...}多态成立必须满足的 3 个条件条件 1️⃣有继承 / 实现关系 继承类或者实现接口条件 2️⃣父类引用指向子类对象 用一个 Animal 类型的引用去指向一个 Dog 类型的对象Animal a代表父类的引用 继承了动物接口 new Dog();子类的对象AnimalanewDog();继承的基础上多态举例父类classPerson{publicvoidintroduce(){System.out.println(我是一个人);}}子类classStudentextendsPerson{Overridepublicvoidintroduce(){System.out.println(我是一个学生);}}publicclassTest{publicstaticvoidmain(String[]args){Personp1newPerson();Personp2newStudent();// 多态发生p1.introduce();// 我是一个人p2.introduce();// 我是一个学生}}条件 3️⃣方法被重写override四、接口Interface——约定而不是实现1️⃣ 是什么定义“必须有什么方法”不关心怎么实现2️⃣ 例子没有接口的写法强耦合classAlipayService{publicvoidpay(doubleamount){System.out.println(支付宝支付amount);}}classWechatPayService{publicvoidpay(doubleamount){System.out.println(微信支付amount);}}业务层classOrderService{publicvoidcreateOrder(StringpayType,doubleamount){if(alipay.equals(payType)){newAlipayService().pay(amount);}elseif(wechat.equals(payType)){newWechatPayService().pay(amount);}}}❌ 问题OrderService 需要知道所有支付实现每加一种支付方式 → 改 if-else无法单元测试没法 mock代码一多就“屎山”引入接口/** * 支付能力接口 * 只定义“能做什么”不关心“怎么做” */定义接口能力契约publicinterfacePayService{/** * 发起支付 * param amount 支付金额 */voidpay(doubleamount);}实现接口publicclassAlipayServiceimplementsPayService{Overridepublicvoidpay(doubleamount){System.out.println(使用【支付宝】支付amount);}}publicclassWechatPayServiceimplementsPayService{Overridepublicvoidpay(doubleamount){System.out.println(使用【微信】支付amount);}}业务层定义classOrderService{privatefinalPayServicepayService;// 通过构造方法注入publicOrderService(PayServicepayService){this.payServicepayService;}publicvoidcreateOrder(doubleamount){payService.pay(amount);}}主函数调用publicclassMain{publicstaticvoidmain(String[]args){PayServicepayServicenewAlipayService();OrderServiceorderServicenewOrderService(payService);orderService.createOrder(100.0);}}
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站 就与狗做网站

目录 具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring…

张小明 2026/1/16 17:54:54 网站建设

服务器做php网站服务之家做网站简单吗

Web服务器性能优化终极指南:快速提升响应时间 【免费下载链接】TinyWebServer :fire: Linux下C轻量级WebServer服务器 项目地址: https://gitcode.com/gh_mirrors/ti/TinyWebServer 还在为网站加载缓慢而困扰吗?想知道如何让服务器响应时间缩短50…

张小明 2026/1/16 17:52:53 网站建设

怎样注册免费网站淮安软件园网站建设

从数据迷雾到商业智慧 【免费下载链接】PowerBI官方中文教程PDF版下载 本仓库提供了一份名为“Power BI 官方中文教程(PDF版)”的资源文件下载。该教程详细介绍了微软Power BI的功能、授权方式以及应用场景,适合不同规模的企业和个人用户使用…

张小明 2026/1/16 17:50:52 网站建设

个人网站建设分几个步走制作静态网站模板

BusyBox 单体二进制的奥秘:一个程序如何扮演上百个命令?你有没有想过,为什么一台只有几MB存储空间的路由器,也能运行ls、ps、grep这些熟悉的 Linux 命令?它可没有像你的电脑那样安装一整套 GNU 工具集。答案就藏在一个…

张小明 2026/1/16 17:48:50 网站建设

基于html5的购物商城网站有哪些做农产品的网站

Foldseek:高效蛋白质结构比对的突破性工具 【免费下载链接】foldseek Foldseek enables fast and sensitive comparisons of large structure sets. 项目地址: https://gitcode.com/gh_mirrors/fo/foldseek 蛋白质结构比对是生物信息学中至关重要的分析环节&…

张小明 2026/1/16 17:46:49 网站建设

河南网站建设软件h5搭建

Kotlin协程flow瞬时密集数据流去重debounce(1) 这个功能很像Android里面利用Handler发送一些列delay的message,然后再handleMessage里面,根据收到的前后时延是否大于某个值,如果大于等于,则处理&#xff0c…

张小明 2026/1/16 17:42:47 网站建设