day39 注解 设计模式(单例模式和工厂模式)

这篇具有很好参考价值的文章主要介绍了day39 注解 设计模式(单例模式和工厂模式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、注解

@Target   

@Target(ElementType.TYPE)

@Target({

                ElementType.TYPE,         

                ElementType.METHOD})

@Target({
        ElementType.TYPE,//类
        ElementType.METHOD,//方法
        ElementType.FIELD,//属性
})

//确定自定义的注解的使用范围 type为类  method为方法  field为属性

@Retention

@Retention()  //(不添加参数默认是class)
@Retention(RetentionPolicy.CLASS)// 保留到源码阶段和编译阶段

@Retention(RetentionPolicy.RUNTIME)// 保留到源码阶段和编译阶段和运行阶段           @Retention(RetentionPolicy.SOURCE)//保留到源码阶段

//标注自定义注解 使用的时机

beans 的 包名含义

 *entity   实例, 数据库中表有什么字段,这里面的类就有什么字段
 * vo:      视图对象,
 * domain  : 数据库表中有的字段,得有,数据库表中没有的字段也可以有
 * pojo  : entity +  domain
 

@Test

不需要main方法 来执行方法

可以直接测试运行方法 

 @SuppressWarnings("这里输入提示信息")//消除编译时出现 过时警告提示

 @Deprecated   //标记过时的方法

    @SuppressWarnings("弹压警告")
    public void getTime(){
//        Date date = new Date();
//        date.getDay();
        sayHi();
    }

    @Deprecated
    public void sayHi(){
        System.out.println("hi");
    }
 
  

 创建自定义一个注解

public @interface dd{}

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Auto {

    int value() default 1;
    String name();
}

@Auto(value = 1,name = "saa")
class Doctor{}

注解中只有一个参数默认名字为value,后接default表默认值,这时@Auto中可直接添加值

除此之外得写 参数名 = xxx

 二、设计模式 23种模式

·设计模式是在大量的实践中总结和理论化之后优选的代码结构,编程模式,解决问题的风格

一、创建型模式  5

单例模式

工厂方法模式

抽象工厂模式

原型模式

建造者模式

二、结构型模式  7

适配器模式

桥接模式

装饰模式

组和模式

外观模式

享元模式

代理模式

三、行为型模式  11

模板方法模式

命令模式

迭代器模式

观察者模式

中介模式

备忘录模式

状态模式

解释器模式

职责链模式

策略模式

三、设计模式的六大原则

1、开闭原则

对扩展开放,对修改关闭

设计文件时(类,接口,方法),不要把文件写死,要考虑文件的拓展性

代码在升级的过程中尽量不要改变和破坏原来的结构和功能,进行扩展

2、里氏代换原则

如果调用的是父类的话,那么换成子类完全可以运行

在传参的时候,尽量写成当前参数的父类,这样可以传所有这个参数的子类,方法更加灵活

3、依赖倒转原则

在开闭原则的基础上

面向接口编程,依赖抽象不依赖具体  指接口和实现类

4、接口隔离原则

一个类如果能实现多个接口。实现多个接口降低耦合

不要把所有方法写在一个接口中,把有相同特点的方法写在一个接口中,方便管理

5、迪米特法则(最少知道原则)

类与类之间减少发生相互作用

对象和对象间减少依赖,使系统功能模块相对独立

6、合成复用原则

在一个新对象中使用已有的对象,(已有对象成为新对象的属性)

新对象通过向这些对象通过委派复用已有功能。注意不是继承。

一个对象作为另一个对象的属性(引用数据类型)

尽量使用合成复用原则,减少继承的使用

四、单例模式

概念

一个类有且仅有一个实例,自行实例化,向整个系统提供

目的

内存中只有一个实例,减少内存开销,尤其是频繁的创建和销毁

避免对资源的多重占用比如文件读写操作

特点

单例模式的类只提供私有构造函数

类中还有一个该类的静态私有对象

提供一个静态的共有的方法用于创建获取它本身的私有静态对象

饿汉式(非延迟加载)

无论对象是否用得到,一定会被创建,类被加载的同时就创建

day39 注解 设计模式(单例模式和工厂模式),java,开发语言

懒汉式

day39 注解 设计模式(单例模式和工厂模式),java,开发语言

 五、工厂模式

优点

工厂模式也是用来创建对象的 可以实现一定程度上的松耦合

不需知道对象创建的过程 只要知道调用接口传入的参数即可

概念

定义一个用于创建对象的接口 让殊相类决定将哪一个类实例化

Factory Metod 使用一个类的实例化延迟到其实现类 类

3案例

day39 注解 设计模式(单例模式和工厂模式),java,开发语言

 工厂独立于需求之外,负责生产对象的具体方法

需求是工厂生产水果 水果可以是苹果 香蕉 橘子

那么可以建立工厂类  水果父类  具体的水果子类

水果又可以添加夏天要生产的西瓜,冬天吃的地瓜

最好写成接口,不要写死成具体类

最后案例测试

day39 注解 设计模式(单例模式和工厂模式),java,开发语言文章来源地址https://www.toymoban.com/news/detail-709503.html

到了这里,关于day39 注解 设计模式(单例模式和工厂模式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【设计模式】单例模式、工厂方法模式、抽象工厂模式

    1. 单例模式 (Singleton Pattern): 场景: 在一个应用程序中,需要一个全局唯一的配置管理器,确保配置信息只有一个实例。 2. 工厂方法模式 (Factory Method Pattern): 场景: 创建一组具有相似功能但具体实现不同的日志记录器。 3. 抽象工厂模式 (Abstract Factory Pattern): 场景: 创建不同

    2024年01月15日
    浏览(57)
  • 结构型设计模式-单例模式/工厂模式/抽象工厂

    创建型设计模式-单例模式/工厂模式/抽象工厂 行为型设计模式:模板设计模式/观察者设计模式/策略设计模式 C#反射机制实现开闭原则的简单工厂模式 设计模式可以分为三种类型: 创建型设计模式、结构型设计模式和行为型设计模式 。 创建型设计模式:这些模式涉及到 对

    2024年02月11日
    浏览(52)
  • 设计模式(单例模式,工厂模式),线程池

    目录 什么是设计模式? 单例模式 饿汉模式 懒汉模式 工厂模式 线程池 线程池种类 ThreadPoolExcutor的构造方法: 手动实现一个线程池  计算机行业程序员水平层次不齐,为了 让所有人都能够写出规范的代码, 于是就有了设计模式, 针对一些典型的场景,给出一些典型的解决方案 单例

    2024年02月11日
    浏览(39)
  • 设计模式-创建型模式(单例、工厂、建造、原型)

    设计模式:软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。 面向对象三大特性:封装、继承、多态。 面向对象设计的SOLID原则: (1)开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情

    2024年02月08日
    浏览(52)
  • Python入门【​编辑、组合、设计模式_工厂模式实现 、设计模式_单例模式实现、工厂和单例模式结合、异常是什么?异常的解决思路 】(十七)

    👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错的

    2024年02月14日
    浏览(42)
  • 【2023-05-09】 设计模式(单例,工厂)

    单例模式 顾名思义,就是整个系统对外提供的实例有且只有一个 特点: ​ 1、单例类只有一个实例 ​ 2、必须是自己创建唯一实例 ​ 3、必须给所以对象提供这个实例 分类:一般分为饿汉式单例(直接实例化)和懒汉式单例(使用时才实例化) 饿汉式单例 懒汉式单例 同步

    2024年02月03日
    浏览(37)
  • 前端设计模式:工厂方法模式、单例模式、订阅模式、中介者模式

    工厂方法模式是一种创建型设计模式,它提供了一种将对象的创建与使用分离的方式。在工厂方法模式中,我们定义一个工厂接口,该接口声明了一个用于创建对象的方法。具体的对象创建则由实现该接口的具体工厂类来完成。 工厂方法模式的核心思想是将对象的创建延迟到

    2024年02月12日
    浏览(50)
  • 设计模式(单例模式、工厂模式及适配器模式、装饰器模式)

    目录 0 、设计模式简介 一、单例模式 二、工厂模式 三、适配器模式 四、装饰器模式  设计模式可以分为以下三种:  创建型模式: 用来描述 “如何创建对象” ,它的主要特点是 “将对象的创建和使用分离”。包括 单例 、原型、 工厂方法 、 抽象工厂 和建造者 5 种模式。

    2024年02月06日
    浏览(38)
  • C++面试:单例模式、工厂模式等简单的设计模式 & 创建型、结构型、行为型设计模式的应用技巧

            理解和能够实现基本的设计模式是非常重要的。这里,我们将探讨两种常见的设计模式:单例模式和工厂模式,并提供一些面试准备的建议。 目录 单例模式 (Singleton Pattern) 工厂模式 (Factory Pattern) 面试准备  1. 理解设计模式的基本概念 2. 掌握实现细节 3. 讨论优缺

    2024年02月01日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包