开发中的必备知识

MVC编程模式

  MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:

  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。

      MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
    View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
    Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

      MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
    MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

      需要注意的是MVC是一个框架模式,而是一种设计模式。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

 设计模式-单例模式

建筑设计大师亚力山大在《建筑的永恒之道》里这样描述:模式是一条由三个部分组成的通用规则:它表示了一个特定环境、一类问题和一个解决方案之间的关系。每一个模式描述了一个不断重复发生的问题,以及该问题解决方案的核心设计。
他的观点实际上适用于所有的工程设计领域,其中也包括软件设计领域。“软件设计模式”,这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。目前主要有23种。

序号模式 & 描述包括
1创建型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
  • 工厂模式(Factory Pattern)
  • 抽象工厂模式(Abstract Factory Pattern)
  • 单例模式(Singleton Pattern)
  • 建造者模式(Builder Pattern)
  • 原型模式(Prototype Pattern)
2结构型模式
这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。
  • 适配器模式(Adapter Pattern)
  • 桥接模式(Bridge Pattern)
  • 组合模式(Composite Pattern)
  • 装饰器模式(Decorator Pattern)
  • 外观模式(Facade Pattern)
  • 享元模式(Flyweight Pattern)
  • 代理模式(Proxy Pattern)
3行为型模式
这些设计模式特别关注对象之间的通信。
  • 责任链模式(Chain of Responsibility Pattern)
  • 命令模式(Command Pattern)
  • 解释器模式(Interpreter Pattern)
  • 迭代器模式(Iterator Pattern)
  • 中介者模式(Mediator Pattern)
  • 备忘录模式(Memento Pattern)
  • 观察者模式(Observer Pattern)
  • 状态模式(State Pattern)
  • 策略模式(Strategy Pattern)
  • 模板模式(Template Pattern)
  • 访问者模式(Visitor Pattern)

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

注意:

  • 1、单例类只能有一个实例。
  • 2、单例类必须自己创建自己的唯一实例。
  • 3、单例类必须给所有其他对象提供这一实例。

单例模式

介绍:

意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

主要解决:一个全局使用的类频繁地创建与销毁。

何时使用:当您想控制实例数目,节省系统资源的时候。

如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。

关键代码:构造函数是私有的。

应用实例: 1、一个党只能有一个主席。 2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。 3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。

优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。

缺点:没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。

使用场景: 1、要求生产唯一序列号。 2、WEB 中的计数器,不用每次刷新都在数据库里加一次,用单例先缓存起来。 3、创建的一个对象需要消耗的资源过多,比如 I/O 与数据库的连接等。

注意事项:getInstance() 方法中需要使用同步锁 synchronized (Singleton.class) 防止多线程同时进入造成 instance 被多次实例化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java开发必备知识框架包括Java语言基础、Java集合框架、Java设计模式、Java多线程、Java IO/NIO、Spring、Mybatis、Hibernate、Java Web编程、Java持久层技术、Java间件等等。 ### 回答2: 当前Java开发必备知识框架有很多,以下是一些常见的框架: 1. Spring框架:Spring是一个轻量级的框架,提供了IoC(控制反转)和AOP(面向切面编程)等功能,可以帮助开发者构建松耦合、可维护和可测试的应用程序。 2. Spring Boot框架:Spring Boot是Spring框架的增强版,通过提供默认配置和快速启动能力,简化了Spring应用程序的开发和部署过程。 3. Hibernate框架:Hibernate是一个ORM(对象关系映射)框架,可以简化Java开发者与数据库之间的交互。它提供了面向对象的API,使得开发者可以使用Java对象进行数据库操作。 4. MyBatis框架:MyBatis是一个持久化框架,通过使用XML或注解配置SQL语句,将Java对象映射到数据库操作上。它提供了灵活性和高度可定制化的特点。 5. Spring MVC框架:Spring MVC是Spring框架的一部分,用于构建基于模型-视图-控制器(MVC)架构的Web应用程序。它提供了简单易用的API和强大的处理请求和响应的能力。 6. Apache Struts框架:Struts是一个基于MVC架构的Web应用程序框架。它通过将请求、响应和业务逻辑分离,可以使开发者更加关注业务实现。 7. Spring Cloud框架:Spring Cloud是一套开发微服务架构的工具集合,包括服务注册与发现、负载均衡、熔断器等组件,可以简化开发分布式系统的复杂性。 以上框架都是当前Java开发必备知识,根据项目需求和个人偏好,可以选择适合的框架来提升开发效率和项目质量。 ### 回答3: 当前Java开发必备知识框架有很多,以下是一些重要的框架: 1. Spring框架:Spring是目前最流行的Java开发框架之一,它提供了一个全面的解决方案,包括依赖注入、面向切面编程和以及集成其他框架的能力。 2. Hibernate框架:Hibernate是一个Java持久化框架,用于简化和优化与数据库的交互。它提供了一个面向对象的数据访问层,让开发人员能够使用面向对象的方式来操作关系型数据库。 3. Spring Boot框架:Spring Boot是一个简化了Spring应用开发的框架,它提供了自动化配置和默认配置,减少了开发人员的配置工作,同时还提供了快速的应用部署和开发体验。 4. MyBatis框架:MyBatis是一个基于Java的持久层框架,它通过XML或注解的方式将Java对象和SQL语句进行映射,提供了一种轻量级的数据库访问解决方案。 5. Spring MVC框架:Spring MVC是一种基于Java的Web应用开发框架,它遵循MVC(模型-视图-控制器)的架构模式,提供了路由、参数绑定、数据验证等功能,使得开发Web应用更加简单和高效。 6. Apache Kafka框架:Apache Kafka是一个分布式流处理平台,它提供了高性能、可扩展的消息传递系统,用于处理实时数据流,适用于构建大规模的实时数据处理和分析应用。 除了以上提到的框架外,还有很多其他的框架,如Spring Cloud、Netty、Elasticsearch、Dubbo等,根据具体的开发需求和项目情况,选择合适的框架对于提高开发效率和产品质量非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值