以下资料全部来自老师PPT以及前辈资料整理,仅供学业参考。
详细内容参考百度云盘:
链接:https://pan.baidu.com/s/1e1bvdmbZhjWS0SCbc15kfA
提取码:1111
面向对象设计原则:
1、单一职责原则(Single Responsibility Principle, SRP)
定义:
一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
Every object should have a single responsibility, and that responsibility should be entirely encapsulated by the class.
2、开闭原则(Open-Closed Principle, OCP)
定义:
一个软件实体应当对扩展开放,对修改关闭。
Software entities should be open for extension, but closed for modification.
3、里氏代换原则(Liskov Substitution Principle, LSP)
定义:
所有引用基类(父类)的地方必须能透明地使用其子类的对象。
Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
4、依赖倒转原则(Dependence Inversion Principle, DIP)
定义:
要针对接口编程,不要针对实现编程。高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
Program to an interface, not an implementation.
5、接口隔离原则(Interface Segregation Principle, ISP)
定义:
客户端不应该依赖那些它不需要的接口。(用多个专门的接口,而不使用单一的总接口)
Clients should not be forced to depend upon interfaces that they do not use.
6、合成复用原则(Composite Reuse Principle, CRP)
定义:
尽量使用对象组合,而不是继承来达到复用的目的。
Favor composition of objects over inheritance as a reuse mechanism.
7、迪米特法则(Law of Demeter, LoD)
定义:
一个软件实体应当尽可能少的与其他实体发生相互作用
创建型模式:
简单工厂模式(类创建型模式):违背单一原则模式,违背开闭原则。扩展困难
工厂方法模式(类创建型模式):符合开闭原则。
抽象工厂模式(对象创建型模式):符合开闭原则,也不符合。
原型模式(对象创建型模式):违背开闭原则。扩展性好
单例模式(对象创建型模式):违背单一职责原则。扩展困难
结构型模式:
适配器模式(对象结构型模式 / 类结构型模式):灵活性和扩展性非常好,有一定的复用性。
桥接模式(对象结构型模式):好的可扩展性,符合开闭原则,联合适配器:
组合模式(对象结构型模式):忽略了层次的差异,扩展方便,
外观模式(对象结构型模式):迪米特法则的具体表现,违背开闭原则(除非抽象外观)。
代理模式(对象结构型模式):无话可说,自己品味。
行为型模式:
职责链模式(对象行为型模式):灵活性,可扩展;可能死循环
命令模式(对象行为型模式):符合开闭原则,撤销(Undo)和恢复(Redo);
策略模式(对象行为型模式):对开闭原则的完美支持,可以替换继承关系,算法复用。无法同时在客户端使用多个策略类,产生太多类且需自行决定。
模板方法模式(类行为型模式):符合单一职责原则和开闭原则。类的个数增加,系统会更加庞大,设计也更加抽象。
1.HttpClient工具类public class HttpClientUtils { /** 带请求头的get请求 **/ public static String doGet(String url) throws IOException { CloseableHttpClient client=null; CloseableHttpRespo...
2010-06-01 14:19:34,041 [main] WARN [org.hibernate.util.JDBCExceptionReporter] - SQL Error: 207, SQLState: S00012010-06-01 14:19:34,041 [main] ERROR [org.hibernate.util.JDBCExceptionReporter] - 列名 ...
一入编程深似海,从此女神是路人。没办法,这行就这样。你不学Spring,总不是跑去学JVM/微服务架构/分布式去了,不断学习根本避免不了。所以关键在于把时间投在学什么上比较划算。明确表达我的观点,作为一名Javaer进阶大数据开发,短期小有所成,中期快速发展,长期来看Java程序员发展受阻,在数据驱动一切的时代,转型大数据行业更是未来发展的必然趋势。相比其他开发岗位,Java转型大数数据开...
示例一:package cn.itcast.net.p5.tcptest;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;import java.net.Unknown...
18春《计算机应用基础》在线作业2-0001试卷总分:100 得分:0一、 单选题 (共 30 道试题,共 30 分)1.可以作为输出设备的是( )A.只读光盘B.扫描仪C.绘图仪D.键盘2.在Word中,按Del键,可删除____。A.插入点前面的一个字符B.插入点前面所有的字符C.插入点后面的一个字符D.插入点后面所有的字符3.下面是某单位主页Web地址的URL,其中符合URL格式的是_...
[Golang]力扣Leetcode - 409. 最长回文串(哈希表)题目:给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。在构造过程中,请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。链接: 力扣Leetcode - 409. 最长回文串.示例1:输入:s = “abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。示例 2:输入:s = “a”输入:1示例 3:输入:s
本文转载自wenkai169《linux sock_raw原始套接字编程》sock_raw原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket 1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包2.soc
https://blog.csdn.net/u010900754/article/details/78157146【MongoDB】配置shard集群 完整教程2017年10月04日 05:45:19阅读数:903分片技术可以解决单表数据量太大以至于单台机器都无法支持的情况,是一种水平扩展技术。其中也会有一些技术难点,比如一致性哈希等。这里记录一下自己使用MongoDB实现sh...
为什么80%的码农都做不了架构师?>>> ...
for (int i = 0, len = listAdapter.getCount(); i < len; i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); // 计算子项View 的宽高
模型视图结构Model-View-Controller (MVC) 是一种设计模式。它们通常由三个对象构成,Model是应用模型,View是屏幕显示,Controller定义了用户界面和用户输入的交互。如果把View和Controller结合起来,就成为了Model/View
(1)在把项目打成jar包部署的时候,该jar包不能做成镜像容器运行,因为某些设备是采用485通讯,即是将设备的485线转成一个USB插入到服务器,之后服务运行的时候,是通过查询系统有哪些串口,并且是该USB的串口与服务进行通讯。整个流程通讯都是在物理服务器上面,做成镜像容器运行无法连接串口通讯。(2)在运行jar包的时候,需要在服务器部署jdk,同时需要在部署好的jdk里面需要上传一些串口服务运行的RXTXcomm.jar和librxtxParallel.so,librxtxSerial.so,具体可