当前位置: 首页 > news >正文

做网站时应该用什么软件域名上面怎么建设网站

做网站时应该用什么软件,域名上面怎么建设网站,自贡在线最新消息,成都官网seo技术设计模式 设计模式示例代码库地址: https://gitee.com/Jasonpupil/designPatterns 设计模式原则 单一职责原则(SPS): 又称单一功能原则,面向对象五个基本原则(SOLID)之一 原则定义&#xf…

设计模式

设计模式示例代码库地址:

https://gitee.com/Jasonpupil/designPatterns

设计模式原则

单一职责原则(SPS):

  • 又称单一功能原则,面向对象五个基本原则(SOLID)之一

  • 原则定义:一个类应该只有一个发生变化的原因

  • 使用if else进行判断实现不好维护

  • 模式场景:视频网站,存在访客用户(视频480p高清,并有广告)普通用户(视频720p超清,并有广告)VIP用户(视频1080p蓝光,没有广告)

    • if else处理方式示例代码:
     /*** @Description: 视频用户服务* @Author: pupil* @Date: 2024/06/21 下午 8:12*/
    public class VideoUserService {public void serveGrade(String userType){if ("VIP用户".equals(userType)){System.out.println("VIP用户,视频1080p蓝光");}else if ("普通用户".equals(userType)){System.out.println("普通用户,视频720p超清");}else if ("访客用户".equals(userType)){System.out.println("访客用户,视频480p高清");}}
    }/*** @description:测试验证* @author: pupil* @data: 2024/06/21 下午 7:57*/
    public class ApiTest {public static void main(String[] args) {VideoUserService service = new VideoUserService();service.serveGrade("VIP用户");service.serveGrade("普通用户");service.serveGrade("访客用户");}
    }
    

    结果:

    请添加图片描述

    • 根据单一职责原则处理方式示例代码:
    /*** @Description: 视频用户服务接口* @Author: pupil* @Date: 2024/06/21 下午 8:17*/
    public interface IVideoUserService {void definition();void advertisement();
    }/*** @Description: 访客用户* @Author: pupil* @Date: 2024/06/21 下午 8:18*/
    public class GuestVideoUserServiceImpl implements IVideoUserService {@Overridepublic void definition() {System.out.println("访客用户,视频480p超清");}@Overridepublic void advertisement() {System.out.println("访客用户,视频有广告");}
    }/*** @Description: 普通用户* @Author: pupil* @Date: 2024/06/21 下午 8:19*/
    public class OrdinaryVideoUserServiceImpl implements IVideoUserService {@Overridepublic void definition() {System.out.println("普通用户,视频720p超清");}@Overridepublic void advertisement() {System.out.println("普通用户,视频有广告");}
    }/*** @Description: VIP用户* @Author: pupil* @Date: 2024/06/21 下午 8:20*/
    public class VipVideoUserServiceImpl implements IVideoUserService {@Overridepublic void definition() {System.out.println("VIP用户,视频1080p蓝光");}@Overridepublic void advertisement() {System.out.println("VIP会员,视频无广告");}
    }/*** @Description: 测试验证* @Author: pupil* @Date: 2024/06/21 下午 8:24*/
    public class ApiTest {public static void main(String[] args) {IVideoUserService guest = new GuestVideoUserServiceImpl();guest.definition();guest.advertisement();System.out.println("=================================");IVideoUserService ordinary= new OrdinaryVideoUserServiceImpl();ordinary.definition();ordinary.advertisement();System.out.println("=================================");IVideoUserService vip = new VipVideoUserServiceImpl();vip.definition();vip.advertisement();}
    }
    

    结果:

    请添加图片描述

根据单一职责原则的示例类图:

请添加图片描述

接口和类是实现关系

开闭原则

  • 开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”

  • 让类依赖于固定的抽象,所以对修改是封闭的

  • 而通过面向对象的继承和多态机制,可以实现对抽象体的继承,通过覆写其方法来改变固有行为,实现新的扩展方法,所以对于扩展就是开放的

  • 提高复用性:

    • 通过抽象提高灵活性:使用抽象类或接口定义功能,使具体实现可以灵活替换。这种方法允许开发者在不改变现有代码的基础上增加新功能。
    • 减少代码重复:将通用的行为放在基类或接口中,具体实现类通过继承和实现来扩展这些行为。这减少了重复代码的出现,使代码更易于维护和复用。
  • 提高维护性:

    • 降低风险:增加新功能时无需修改现有代码,减少引入新错误的风险,增强系统稳定性
    • 独立测试:模块更加独立,便于单独测试和调试。接口测试确保所有实现类符合预期行为,只需测试新代码
    • 职责单一:各模块职责明确,代码结构清晰,便于理解和修改,开发人员能快速找到扩展点。
  • 使用场景:支付方式,进行付款时存在不同的付款方式,在已有的微信支付的方式上新添加根据金额自动选择微信余额支付还是绑定的银行卡支付

    示例代码:

    /*** @Description: 支付处理接口* @Author: pupil* @Date: 2024/06/22 下午 9:25*/
    public interface PaymentProcessor {void processPayment(double amount);
    }/*** @Description: 微信支付* @Author: pupil* @Date: 2024/06/22 下午 9:49*/
    public class WeChatProcessor implements PaymentProcessor {@Overridepublic void processPayment(double amount) {System.out.println("使用微信余额支付");}
    }/*** @Description: 扩展微信支付,添加从银行卡扣钱* @Author: pupil* @Date: 2024/06/22 下午 9:33*/
    public class BankCardProcessor extends WeChatProcessor {/*** 当amount大于100时用银行卡支付* @param amount*/@Overridepublic void processPayment(double amount) {if (amount<=100){System.out.println("使用微信余额支付");}else {System.out.println("使用银行卡支付");}}}/*** @Description: PayPal支付实现* @Author: pupil* @Date: 2024/06/22 下午 9:49*/
    public class PayPalProcessor implements PaymentProcessor {@Overridepublic void processPayment(double amount) {System.out.println("使用PayPal支付");}
    }/*** @Description: 测试验证* @Author: pupil* @Date: 2024/06/21 下午 8:13*/
    public class ApiTest {@Testpublic void test_BankCardProcessor(){PaymentProcessor processor = new BankCardProcessor();processor.processPayment(150);processor.processPayment(90);}@Testpublic void test_WeChatProcessor(){PaymentProcessor processor = new WeChatProcessor();processor.processPayment(150);}@Testpublic void test_PayPalProcessor(){PaymentProcessor processor = new PayPalProcessor();processor.processPayment(150);}}
    

    结果:

    • 微信支付类的扩展类:在这里插入图片描述

    • 微信支付类:在这里插入图片描述

根据开闭原则的示例类图:

请添加图片描述

微信支付类和PayPal支付类与支付接口是实现关系

微信支付类与微信支付扩展类是泛化关系

其他原则待完成…

http://www.sczhlp.com/news/80844/

相关文章:

  • 怎么可以自己制作网站百度关键词快速排名
  • 网站建设一点通pre_get_posts wordpress
  • 可信网站认证购买wordpress什么版本快
  • 网站注册域名免费旅游景点网页
  • 发外链的网站都要企业注册一级域名免费网站怎么申请
  • 建设工程资质录入是在那个网站权威发布意思
  • Flink 与Flink可视化平台StreamPark教程(开篇)
  • IsMyTouchScreenOK(触摸屏坏点检测)多语便携版 - 详解
  • 安防视频汇聚系统EasyCVR下载十几秒的录像报错404?原因竟是一个不起眼的“/”
  • 中国建设银行卖狗年纪念币官方网站秦皇岛做网站的公司哪家好
  • 网站后台配置帮人推广的平台
  • 江门网站制作方案定制wordpress访问仪表盘
  • Gitee Wiki如何解决关键领域软件研发的知识管理困局
  • 三角函数的余弦定理的证明
  • 格子达检测怎么降aigc,两个方法
  • iPad安装Windows系统的可行性与性能表现分析
  • wordpress仿站上传到给自己的网站做关键词流程
  • 网站空间可以自己做服务器淘宝客用wordpress好吗
  • 在站点上新建网页上海中学国际部
  • 财税公司做网站网页设计实验总结100字
  • 普通话手抄报文字内容济南百度seo
  • 公司做网站需要好多钱网站辅助导航
  • 站长工具集我为什么不建议年轻人做销售
  • 网站设计 网站开发 西安微信公众平台开发工具
  • DW网站建设出现哪些问题浙江省建设信息港的网站
  • 网站建设基本技术工业设计公司如何选择
  • 数据结构与算法-21.二叉树应用案例
  • 第一周个人作业
  • Linux随记
  • 3ds Max 2026.1 终于来了!一分钟带你完成安装