首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用ASP.NET Core 3.x 构建 RESTful API - 3.1 资源命名

    分析:这个句话主要动词就是“获取”,而想要获取资源(也就是主要名词)是“用户”。 正确做法:需求里面主要动词应该通过HTTP方法来体现,“获取”对应HTTP方法就是GET。...而“用户”这个资源可以英文user或者users来表示(是否使用复数一直存在争议,两种方法都行,但你在使用时候需要保持一致)。所以正确uri应该是 GET api/user。...所以APIURI在设计时候需要体现这种包含关系。 常见错误做法:如果你想获得公司这个资源,我想你现在应该不会出错,uri应该是 api/companies。...Controller继承于ControllerBase,Controller添加了对视图支持,因此它更适合用于处理 MVC Web 页面,而不是 Web API。...但是如果你Controller需要同时支持MVC Web页面和Web API,那么这时候就应该继承于Controller这个

    99410

    【Java面试复习经典】传智播客Java就业班入学测试题及答案解析(2014年版)

    下列有关抽象叙述正确是哪项?(C)** A. 抽象中一定含有抽象方法 B. 抽象既能被实例化也能被继承 C....下列关于继承描述,正确有(BD) A. 一个可以同时继承多个父 B. 一个可以具有多个子类 C....关于继承, 以下说法正确是:(ACD) A.Java中只支持单继承, 一个只能继承一个, 但是可以有多个子类 B.一个如果没有自己写无参构造方法, 那么子类将无法继承...C.子类可以当父, 父不可以当子类 D.子类重写父方法时访问权限不能更低 -------------------------------------------------------...如果拿到了对象,不知道是什么类型:用于获得对象类型 Object obj = new Person(); Class clazz1 = obj.getClass(); // 获得对象具体类型

    1.8K20

    Effective_Cpp中55个建议

    改善程序55个具体做法 1.1. 让自己习惯C++ 1.2. 构造/析构/赋值运算 1.3. 资源管理 1.4. 设计与声明 1.5. 实现 1.6. 继承与面向对象设计 1.7....如果不这样做,一旦异常被抛出,有可能导致难以差距资源泄漏。 设计与声明 18:让接口容易被正确使用,不易被误用。 1.接口很容易被正确使用,不容易被误用。...3.切割问题:当使用传值方式时,一个子类对象被传递,被当一个父对象接收时,此时只能调用父中拥有的操作,子类扩展就被切割了。 21:?必须返回对象时,别妄想返回其reference。...28:避免返回handles指向对象内部成分。 1.如果你public成员函数返回一个private成员,那么这个私有成员权限也就谈不上私有了。 2.避免返回handles指向对象内部。...3.程序库头文件应该以“完全且仅有声明式”形式存在。这种做法不论是否涉及templates都适用。 继承与面向对象设计 32:确定你public继承塑模出is-a关系。

    58930

    Java面试题:多继承

    为了快速了解他们编程能力,我已经想好要问他们字符串反转问题。 除了字符串反转问题外,还有一道题。 Java是否支持多重继承?...好了,很明显传统意义上Java并没有多继承,所以正确答案应该是:“没有”或者“有,但是”或者“没有,但是”。单从这点就可以探索出不同方法来。...菱形继承问题就是在如下情景时出现含糊不清情况:当两个B和C继承自A,D同时继承自B和C,如果D中一个方法调用一个在A中定义方法(不是覆盖方法).而B和C分别用不同地方式重写(overridden...Java坚持了他们做法,语言设计者决定不让其编译通过。...,例如:接口中方法修饰符是什么

    94940

    《Effective C++》学习笔记

    复制构造函数和赋值构造函数看似代码类似,但不要用一个调用另一个,做法是建立一个private成员函数来做这件事,然后两个构造函数都调用该成员函数。...设计与声明 条款18:让接口容易被正确使用,不易被误用 接口要容易被正确使用,不容易被误用,符合客户直觉。...,而是无法拆分(子类继承与此需求不同),因此这种做法有更好扩充性。...如果是 is-a 关系,可以继承,但如果是 has-a 关系,应该将一个作为另一个成员变量来使用,以利用该类能力,而不是去以继承方式使用。...做法是声明一个泛化构造函数,也就是定义一个模板构造函数,接收模板参数,声明一个指向真实对象指针,声明一个获取该对象指针get函数,该get函数放在初始化列表中来构造模板

    1.1K20

    Effective C++笔记

    改善程序与设计55个具体做法 1....以独立语句将new对象置入智能指针 如果不这样做,一旦异常被抛出,有可能导致难以察觉资源泄露 18. 让接口容易被正确使用,不易被误用 接口很容易被正确使用,不容易被误用。...确定你public继承塑模出is-a关系 33. 避免遮掩继承而来名称 派生名称会遮掩基名称。...在public继承之下,派生总是继承接口 pure virtual函数只具体指定接口继承 impure virtual函数具体指定接口继承及缺省实现继承 non-virtual函数具体指定接口继承以及强制性实现继承...但是当派生需要访问受保护成员,或需要重新定义继承而来virtual函数时,这么设计是合理 和复合不同,private继承可以造成empty base最优化。

    81420

    Java基础-day10-基础题-继承;抽象

    Java继承是使用已存在定义作为基础建立新技术,新定义可以增加新数据或新功能,也可以功能,但不能选择性地继承。...若B继承A,那么建立B时只需要再描述与基(A)不同少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据冗余度,大大增加程序重用性。...(修饰符高低:private < 默认修饰符 < public) 抽象方法是什么,其格式是什么,有什么?...,mp4继承电器时就把这个虚方法实现为mp4自己显示方法.如果是收音机继承电器,你就可以不用实现这个方法....下面选项正确是: A.子类继承所有属性和方法 B.子类可以继承私有的属性和方法 C子类可以继承公有的属性和方法 D.创建子类对象时,父构造方法都要被执行 答案:C 下面选项错误

    88260

    最近我遇到10个Java面试问题

    最近我遇到10个Java面试问题 在这篇文章中,我试图收集最有趣和常见问题。另外,我会给你正确答案。 让我们来看看这些问题。 1、10分来评估你自己——你在Java方面有多好?...这些是每个对象都有的方法: Object,属于java.lang包,位于层次结构树顶部。每个都是对象直接或间接后代。您使用或编写每个继承对象实例方法。...从本节讨论Object继承方法有: protected Object clone() throws CloneNotSupportedException创建并返回此对象副本。...为了线程安全,避免使用同步;字符串是隐式线程安全。 4、字符串在Java加载器中使用,不可变性提供了正确加载器加载安全性。例如,考虑一个您试图加载java.sql实例。...diamond问题反映了为什么不允许在Java中进行多次继承。如果有两个具有具有特定方法共享超,那么它将在两个子类中被重写。

    67830

    Effective C++: 改善程序与设计55个具体做法

    使用像Uncopyable这样base class也是一种做法。...如果不这样做,一旦异常被抛出,有可能导致难以察觉资源泄漏。 条款18:让接口容易被正确使用,不易被误用 请记住 ■ 接口很容易被正确使用,不容易被误用。...■ 为“用户定义类型”进行std templates全特化是,但千万不要尝试在std内加入某些对std而言全新东西。...前者很容易辨识出来,而且也比较有着分门别职掌。 条款28:避免返回handles指向对象内部成分 请记住 ■ 避免返回handles(包括references、指针、迭代器)指向对象内部。...为获得TR1提供好处,你需要一份实物。一个实物来源是Boost。 条款55:让自己熟悉Boost 请记住 ■ Boost是一个社群,也是一个网站。

    71020

    Java面试:2021.05.16(周末愉快!)

    注意:在finally中改变返回做法是不好,因为如果存在finally代码块,try中return语句不会立马返回调用者,而是记录下返回值待finally代码块执行完毕之后再向调用者返回其值,然后如果在...显然,在finally中返回或者修改返回值会对程序造成很大困扰,C#中直接编译错误方式来阻止程序员干这种龌龊事情,Java中也可以通过提升编译器语法检查级别来产生警告或错误,Eclipse中可以在如图所示地方进行设置...这里复用代码方式应该是Has-A关系而不是Is-A关系,另一方面容器都属于工具继承工具本身就是一个错误做法,使用工具最好方式是Has-A关系(关联)或Use-A关系(依赖)。...同理,Stack继承Vector也是不正确。 3、在进行数据库编程时,连接池有什么作用?...,需要说明是,即使在JavaAPI中也有不少滥用继承例子,例如Properties继承了Hashtable,Stack继承了Vector,这些继承明显就是错误,更好做法是在Properties

    43420

    Java泛型背后是什么

    ,因此在能用泛型时候,尽量泛型来写,而且我认为一个架构师,业务抽取是离不开泛型定义。...上面的泛型 比如实际项目中,我们经常会遇到服务端返回接口中都有errMsg、status等公共返回信息,而变动数据结构是data信息,因此我们可以抽取公共BaseBean: public class...,但是并不代表BaseBean之间是等量,在开篇也讲过,如果泛型传入是什么类型,那么在BaseBean中getValue返回类型就是什么,因此可以想两个不同泛型肯定是不等价,但是如果我这里写呢...通配符不能定义在上面、接口或方法上,只能作用在方法参数上 其他几种情况自己去尝试,正确使用通配符: public void setClass(Class clazz) { } 可以看到当传进去是Common1.class时候是不合法,因为在add方法中需要传入Common父字节码对象,而Common1是继承自Common

    23230

    Java泛型背后是什么

    比如下面我们没有定义泛型例子: ? 势必在getValue时候代码有个强转过程,因此在能用泛型时候,尽量泛型来写,而且我认为一个架构师,业务抽取是离不开泛型定义。...上面的泛型 比如实际项目中,我们经常会遇到服务端返回接口中都有errMsg、status等公共返回信息,而变动数据结构是data信息,因此我们可以抽取公共BaseBean: public class...在定义时候将Common泛型指向Common1泛型,可以看到直接提示有问题,这里可以想,虽然Common1是继承自Common,但是并不代表BaseBean之间是等量,在开篇也讲过,如果泛型传入是什么类型...,那么在BaseBean中getValue返回类型就是什么,因此可以想两个不同泛型肯定是不等价,但是如果我这里写呢: public static void main(String[] args...通配符不能定义在上面、接口或方法上,只能作用在方法参数上 ? 其他几种情况自己去尝试,正确使用通配符: public void setClass(Class<?

    41700

    PHP 代码简洁之道(小结)

    = b 会返回 false 但实际上它应该是 true ! 字符串类型 ’42’ 是不同于数字类型 42 做法: 使用全等运算符会对比类型和值 if( $a !...继承这个,你可以重写默认信息。 你可以延迟加载对象属性,比如从服务器获取数据。...也就是说 public 和 protected 之间区别仅仅在于访问机制,只有封装才能保证属性是一致。任何在变化对于所有继承子类来说都是危险 。...$employee- getName(); // Employee name: John Doe 组合优于继承 正如 the Gang of Four 所著 设计模式 中所说, 我们应该尽量优先选择组合而不是继承方式...这是一个更可怕定义. 这个最佳解释是,如果你有个父和一个子类,然后父和子类可以互换使用而不会得到不正确结果。这或许依然令人疑惑,所以我们来看下经典正方形 – 矩形例子。

    1.2K31

    Java-多态

    继承允许将对象视为它自己本身类型或其父类型来加以处理。允许将多种类型(从同一父继承)视为同一型来处理。多态方法调用允许一种类型表现出与其他相似类型之间区别,只要它们都是从同一父继承而来。...这样做原因是:因为构造器重要任务之一是:检查对象是否被正确地构造,子类只能访问它自己成员,不能访问父成员(父成员通常是private)。所以只有父才能正确初始化。...在构造器中唯一能够安全调用那些方法是父final方法(也适用于private方法,它们自动属于final方法,这些方法不能被覆盖) 4.协变返回类型 JavaSE5 中添加了协变返回类型,它表示在子类中被覆盖方法可以返回方法返回类型某种子类类型...这样一来,我们在运行期间获得了动态灵活性(这也称作状态模式) 通常:继承表达行为间差异,用字段表达状态上变化。...纯继承域扩展 继承方式创建继承层次结构,也就是说,只有在父中已经建立方法才可以在导出中被覆盖。这种被称作是纯碎is-a(是一种)关系,因为一个接口已经确定了它应该是什么

    53230

    一篇朴实文章带捋完TypeScript基础,方法是正反对比!

    布尔值是最基础数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型: 以下都编译通过,并且给出了说明,一句话总结,是什么类型就要赋值给什么类型,这句话够俗了吧 正确写法 /...function sum() { let args: number[] = arguments; } 函数类型 正确做法 // 需要把输入和输出都考虑到 function sum(x: number...正确做法 //➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ class Animal { constructor(name) { this.name = name; }...正确做法 //只能返回string类型数据 function getData(value:string):string{ return value; } //同时返回 string类型 和number...// 表示参数是什么类型就返回什么类型~~~ function getData(value:T):T{ return value; } getData(123); getData

    1.1K20
    领券