标签:关闭 最小化 原型 事物 简单工厂 软件开发 适配 优雅 特殊
公号:码农充电站pro
主页:https://codeshellme.github.io
如果有人问你,“什么样的代码是好代码”,你会怎样回答呢?
我觉得回答这个问题,应该从两个方面考虑。
那从纯代码层面来说,什么样的代码才是好代码呢?
通常会有以下几个判断标准:
好的代码,不一定要满足以上所有的条件。但一条也不满足的代码,基本上就不是好代码了。
无规则不成方圆,写代码也是如此。要写出好的代码,需要遵守一些规则,主要有以下几个方面:
每种设计模式都遵守了一个或多个设计原则。常用的设计原则有以下几种:
另外在面向对象编程中,也有两个比较重要的编程原则:
在编码的过程中,要时常想着这些原则,思考自己的代码是否符合其中的某项或多项原则。
常见的设计模式有23 种,下面会详细介绍。
编码规范注重的是代码细节,主要目的是让代码具有可读性。整体上来说,好的代码,对外应该有一个统一的代码风格,代码风格不一定有好坏之分,但一定有是否统一之别。
另外,代码命名也很重要,大到项目命名,目录命名,包名等。小到类名,接口名,方法名,对象名,变量名等。命名最基本的要求是用词标准达意,让人一看知道大概的用途是什么。
还有,必要的地方要有必要的注释,对于他人及自己回头看代码都有帮助。
随着项目需求的增加变化,代码结构,代码量也都会跟着变化。代码重构需要我们不断的从整体架构的角度审视整个项目代码的结构,是否已经变得混乱无序。只有不断的对代码进行重构,才能使得代码持续的具有可维护性,可读性等标准。
经过上文,我们已经知道了高质量代码的标准是什么。那么,当我们编写完一部分代码后,应该怎样判断自己写的代码是否是高质量呢?
文章开头已经提到过,好的代码应该从业务和纯代码两个角度来衡量,下面我们就从这两个角度来看,一般要对代码做哪些检查?
业务角度:
从纯代码角度考虑:
当我们完成某一阶段的代码后,可以尝试从以上几点来检查代码是否过关。
下面主要介绍设计模式。
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题,总结出来的一套通用的解决方案。
使用设计模式,可以使得我们编写的代码具有一个良好的结构,从而写出优雅的代码。设计模式关注的是,类与类之间以及对象与对象之间如何交互。
常见的设计模式有23 种,但并不是每一种模式都常用。这23 种设计模式可分为3 大类,分别是:
下面介绍每类之中都包含哪些设计模式。
创建型包含5 种设计模式:
结构型包含7 种设计模式:
行为型包含11 种设计模式:
设计模式中经常会用到UML 图来表示类与类之间的关系,下面介绍6 种UML 规定的类关系,分别是:
各种关系之间的强弱性为:
泛化可理解为继承关系。如下代码中,类B继承了类A。
public class A { ... }
public class B extends A { ... }
泛化关系用一个实线三角箭头表示,关系图如下,箭头由B 指向A,表示B继承了A:
实现类和接口之间的关系,称为实现关系。
如下代码中,类B 实现了接口A。
public interface A {...}
public class B implements A { ... }
实现关系用一个虚线三角箭头表示,关系图如下,箭头由B 指向A,表示B 实现了A:
聚合是一种包含关系,A 类对象包含B 类对象,B类对象的生命周期可以不依赖A 类对象的生命周期。
如下代码中,A 类对象包含了B 类对象。
public class A {
private B b;
public A(B b) {
this.b = b;
}
}
聚合关系用一个实线空心菱形箭头表示,关系图如下,箭头由B 指向A,表示A 中聚合了B:
组合是一种包含关系。A 类对象包含B 类对象,B 类对象的生命周期依赖A 类对象的生命周期,B 类对象不可单独存在。
如下代码中,A 类对象包含了B 类对象。
public class A {
private B b;
public A() {
this.b = new B();
}
}
组合关系用一个实线实心菱形箭头表示,关系图如下,箭头由B 指向A,表示A 中组合了B:
关联是一种非常弱的关系,包含聚合、组合两种关系。如果B 类对象是A 类的成员变量,那么B 类和A 类就是关联关系。
如下两种代码都是关联关系。
public class A {
private B b;
public A(B b) {
this.b = b;
}
}
// 或者
public class A {
private B b;
public A() {
this.b = new B();
}
}
关联关系用一个实线箭头表示,关系图如下,箭头由A 指向B,表示A 关联B:
依赖是一种比关联关系更弱的关系,包含关联关系。只要B 类对象和A 类对象有任何使用关系。
如下三种代码都是依赖关系。
public class A {
private B b;
public A(B b) {
this.b = b;
}
}
// 或者
public class A {
private B b;
public A() {
this.b = new B();
}
}
// 或者
public class A {
public void func(B b) { ... }
}
依赖关系用一个虚线箭头表示,关系图如下,箭头由A 指向B,表示A 依赖B:
本篇文章主要介绍了什么是高质量代码,如何发现代码中的问题,以及如何编写高质量代码。另外重点介绍了23 种设计模式都有哪些,及每种设计模式的含义。最后介绍了设计模式中经常用到的UML 关系都有哪些。
希望本篇文章对你有所帮助,如果哪里有任何问题也欢迎指正,谢谢!
(完。)
欢迎关注作者公众号,获取更多技术干货。
标签:关闭 最小化 原型 事物 简单工厂 软件开发 适配 优雅 特殊
原文地址:https://www.cnblogs.com/codeshell/p/13968620.html