实例化

设计模式一:简单设计模式

孤街浪徒 提交于 2019-11-30 15:10:32
简单工厂模式 概念 简单工厂模式属于创建型模式,又叫做静态工厂方法(Static Factory Method)。简单工厂模式是由一个工厂对象决定创建哪一种产品类实例。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为不同工厂模式的一个特殊实现 值得注意的是,简单工厂模式并不属于GOF设计模式之一。但是他说抽象工厂模式,工厂方法模式的基础,并且有广泛得应用 模式结构 组成 从上图中可以看出,简单工厂模式由三部分组成:具体工厂、抽象产品和具体产品 : 工厂类(Creator):这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中,它往往由一个具体的类实现 抽象产品(AbstractProduct):它一般是具体产品继承的父类或者实现的接口。在Java中,由接口或者抽象类实现 具体产品(ConcreteProduct):工厂类所创建的对象就是此角色的实例。在java中 由一个具体的类实现 实例分析 需求:有苹果类和香蕉类,他们都有get方法,通过主函数对它们进行实例化,并调用get方法 方式一:最基本的实例化 Apple.java: public class Apple { /** * 采集苹果 */ public void get()

C#中的Attribute

╄→尐↘猪︶ㄣ 提交于 2019-11-30 13:20:36
C#中的Attribute 目录 什么是Attribute 深入讨论Attribute 实现自己的Attribute时需要注意的一些问题 一.什么是Attribute 先看下面的三段代码: 自定义Attribute类:VersionAttribute 1 [AttributeUsage(AttributeTargets.Class)] 2 public class VersionAttribute : Attribute 3 { 4 public string Name { get; set; } 5 public string Date { get; set; } 6 public string Describtion { get; set; } 7 } 使用自定义Attribute的Class: 1 [Version(Name = "hyddd", Date = "2009-07-20", Describtion = "hyddd's class")] 2 public class MyCode 3 { 4 //... 5 } 上面这个Class中的Attribute一般会被如何使用呢? 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 var info = typeof(MyCode); 6 var

spring

耗尽温柔 提交于 2019-11-30 11:29:36
spring 源码阅读 IOC容器 实现 AliasRegistry interface 提供别名注册的能力 实现有 SimpleAliasRegistry 使用ConcurrentHashMap实现别名注册 BeanDefinitionRegistry interface 提供了BeanDefinition注册的能力,实现有 SimpleBeanDefinitionRegistry 使用ConcurrentHashMap实现,同时这个类继承SimpleAliasRegistry 提供别名和beanDefinition注册的双重能力 DefaultListableBeanFactory //TODO 后面详细介绍 SingletonBeanRegistry interface 提供单例对象注册的能力 实现有 DefaultSingletonBeanRegistry 这个类还继承了 SimpleAliasRegistry,拥有别名注册的能力, 实现比较复杂!! FactoryBeanRegistrySupport 提供和 工厂bean创建的对象 cache支持 ConfigurableBeanFactory interface //TODO 后面介绍 BeanFactory interface 提供spring ioc 容器的基本功能,包含bean的获取、别名的获取

单例模式

扶醉桌前 提交于 2019-11-30 10:34:33
介绍 类的单例设计模式,就是采取一定的方法来保证在整个软件系统中,某个类只存在一个对象实例。且该类只提供一个取得其对象实例的方法(静态方法)。 八种方式 单例模式有八种方式: 饿汉式(静态常量) 饿汉式(静态代码块) 懒汉式(线程不安全) 懒汉式(线程安全,同步方法) 懒汉式(线程安全,同步代码块) 双重检查 静态内部类 枚举 步骤 步骤大致如下: 构造器私有化(防止外部new) 类的内部创建对象 向外提供一个静态公共方法(getInstance) 饿汉式(静态常量) 代码: package singleton.type1; public class Singleton { private Singleton() { } private static final Singleton instance = new Singleton(); public static Singleton getInstance() { return instance; } } 测试代码: package singleton.type1; public class SingletonTest { public static void main(String[] args) { Singleton instance = Singleton.getInstance(); Singleton

单例设计模式八种写法

安稳与你 提交于 2019-11-30 06:34:30
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类 只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。 比如Hibernate的SessionFactory,它充当数据存储源的代理,并负责创建Session 对象。SessionFactory并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory就够,这是就会使用到单例模式 1.饿汉式(静态常量) 饿汉式(静态常量)应用实例 步骤如下: 构造器私有化 (防止 new ) 类的内部创建对象 向外暴露一个静态的公共方法。getInstance 代码实现 public class SingletonTest01 { public static void main(String[] args) { //测试 Singleton instance = Singleton.getInstance(); Singleton instance2 = Singleton.getInstance(); System.out.println(instance == instance2); // true System.out.println("instance.hashCode=" + instance.hashCode()); System.out.println(

元类

穿精又带淫゛_ 提交于 2019-11-30 06:25:56
目录 元类 什么是元类 为什么用元类 内置函数exec class创建类 type实现 自定义元类 _ _ call _ _ _ _ new _ _ 自定义元类控制的实例化 属性查找顺序 元类 警告!警告!前方核能来袭!!!想要上车的小伙伴赶紧上车了,时间不多了。。。列车长注意把各车门给我焊死了!请各位小伙伴在路途中勿随意跳车,跳车不规范,亲人两行泪。。。各位乘客我们开始出发了,路途中请注意生命安全,如未及时写下遗书,本列车概不负责! 什么是元类 二、什么是元类 在python中一切皆对象,那么我们用class关键字定义的类本身也是一个对象,负责产生该对象的类称之为元类,即元类可以简称为类的类 class Foo: # Foo=元类() pass 为什么用元类 元类是负责产生类的,所以我们学习元类或自定义类的目的:是为了控制类的产生过程,还可以控制对象的产生过程 内置函数exec cmd=''' x=1 print('exec函数在此') def func(self): pass ''' class_dic={} exec(cmd,{},class_dic) print(class_dic) 该内置方法的作用是把cmd字符串中的代码以键对值的形式放到字典中 class创建类 如果说类也是对象,那么用class关键字的去创建类的过程也是一个实例化的过程,该实例化的目的是为了得到一个类

论序列化与反序列化

一世执手 提交于 2019-11-30 06:07:49
首先给大家介绍一下序列化是用来干什么的,他为什么出现 序列化这种技术说到底其实就是把临时数据保存在电脑上。大家都知道对于程序而言对象是一种稍纵即逝的数据,不仅仅是程序重启、电脑重启,就连内部函数的变化也有可能导致对象的消失,但是总有一些对象是大家不想让其随意消失的并且想在下一次开启程序的时候进行加载,在这种环境下-序列化便出现了,它的意义就是为了保持对象的持久化 在此我为大家介绍一下C#当中的XML序列化和二进制序列化,基本所有序列化的方式都差不多因此就着重介绍这两种比较常用的序列化方式 假设类名为:Person 对象名为:P 一: XML序列化 第一步当然是引入命名空间:Using System.IO; Using System.Xml.Serialization; 先实例化我们的类-XmlSerializer XmlSerializer xml = new XmlSerializer(typeof(Person)); 实例化类时的参数为一个Type类型,利用typeof就可以了,typeof里面传入类名 创建出对象xml后开始创FileStream的对象 FileStream fs = new FileStream("asd.xml",FileMode.OpenOrCreate); 实例化该类时传入的参数有两个,第一个是你为文件起的名字-string,第二个是你对IO的操作

模板函数 实例化与具体化

只谈情不闲聊 提交于 2019-11-30 04:25:20
① 首先,实例化从字面上来看就是产生一个实际的事物。在函数模板中就是产生一个特定的函数定义,例如有一个swap函数: template<typename T> void swap(T& a,T& b) {…} 使用模板,并不意味着我们生成了一系列的函数定义,而是一种方案,当我们传递类型进入的时候才生成出对应的swap函数定义,比如现在swap<int>(a,b) 实际上就是产生了void swap(int a,int b);这样的一个函数定义,这被称之为 隐式实例化 ,即在编译的时候提供类型创建一个对应的函数定义。 在以前C++只支持隐式实例化,但现在增加了 显式实例化 ,也就是说可以显式的定义出类型,并对之实现对应的函数定义。显式实例化的语法是声明所需的种类,用<>符号指示类型,并在声明前加上关键词template,例如: template void swap<int>(int,int); 当编译器看到这行声明后,将使用swap模板生成一个使用int类型的实例。也就是说,该声明的意思是使用swap模板生成int类型的函数定义。 ② 其次是,显式具体化,同样是int类型, 显式具体化 可以有这样两种写法: template <> void swap<int>(int&,int&); template <> void sawp(int&,int&);

抽象类和接口

倾然丶 夕夏残阳落幕 提交于 2019-11-30 04:22:50
抽象类( abstract class ) 是什么 具有所有类的特性:属性、方法,该类不能建立对象,只能声明指针和引用,用于基础类的接口声明和运行时的多态,只能继承。所以一般都做为父类存在 能干什么 做父类用,让子类继承,抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。 在哪用 抽象类 抽象类:抽象类就是不能使用 new 方法进行实例化的类,即没有具体实例对象的类,抽象类有点类似于“模板”的作用 , 目的是根据其格式来创建和修改新的类,对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象,当一个类被声明为抽象类时,要在这个类前面加上修饰符 abstract, 在抽象类中的成员方法可以包括一般方法和抽象方法 抽象方法 抽象方法:抽象方法就是以 abstract 修饰的方法,这种方法只声明返回的数据类型,方法名称和所需要的参数,没有方法体,也就是说抽象方法只需要声明而不需要事先,当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是 abstract 的,而这个子类也必须是抽象的,即声明为 avstract 抽象方法:只有方法的声明,没有方法的实现。以分号结束: abstract int abstractMethod( int 注意:

面试一

馋奶兔 提交于 2019-11-30 01:19:56
一面: 实习 项目情况 sql语句 事务 脏读 幻读 索引 使用场景 合并两个有序数组 找到出现超过一半的数 朋友圈测试 转发重定向 http请求资源的全过程。 https tcp udp区别 tcp数据有序达到 集合 抽象接口的区别 猫眼二面: 测试的流程 线程池的作用 spring作用 bean装载 对象实例化 ioc原理 作用 弊端 队列 栈 获取栈中最小元素 测试用例 来源: https://www.cnblogs.com/summer962395785/p/11543528.html