java学到什么时候开始看设计模式最合适?
谢邀!java学到什么时候看设计模式最合适?我的建议是最好能有一定的Java基础后学习,当然这里说的基础指的是已经能简单的小项目,比如说写个学生成绩管理系统(ps:当然不一定需要界面呈现)
为什么需要学设计模式
设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。
设计模式是前人从不断实践中总结出来的一套经验,与语言无关,而是从代码设计的角度上入手,目的是为了使我们的代码更具有可维护性、可读性、可扩展性。
咱们从Java本身语言来说,很多类的设计就充分利用了23种设计模式,这里附上我整理的一张图:
再就从上文说到的成绩管理系统来说,其总共包括以下几个实体:
1、班级:一个老师可以管理多个班级,一个学生只能有一个班级
2、老师:负责将每个学生相应学科的成绩录入到系统中
3、学生:查看自己不同学科的成绩
4、学科:一个班级有多个学科,一个学科有一个老师
那么这里构造一个班级对象,其就充分利用了好几种设计模式:
组合模式:两个属性teachers和students,通过两个add方法来添加Teacher和Student
迭代器模式:通过showStudents方法来获取查看班级下所有学生的迭代器(ps:这里复用了Java#List的迭代器)
建造者模式:StudyClass本身是个建造者模式的实体,通过添加Teacher和Student来形成一个班级
public class StudyClass {
private final Map<Subject , Teacher> teachers;
private final List<Student> students;
public void addTeacher(Subject subject , Teacher teacher){teachers.put(subject,teacher);}
public void addStudent(Student s){students.add(s);}
public Iterator showStudents(){}
}
所以上面的这个例子,你有发现什么吗?其实我们在日常开发中,在不断的应用着设计模式,早日学设计模式,能让我们做到了解到他人写这个代码的设计理念,能知道背后的逻辑,而不是停留在应用的阶段。
另外,同样是写代码,有的人写的代码可读性、可维护性极差,我们经常会看到有人在网上爆料说XX同事写的代码怎么怎么烂;有的人写的代码会让你如浴春风,赏心悦目。
对于Java语言来说,其是一门面向对象设计的语言,而设计模式本身也是基于面向对象设计产生的,这也更具有贴合性。
再一个,如果你想成为开源项目的commiter,那么对于代码质量这块要求就更高了,而设计模式就像一把利剑能帮你斩杀一些烂代码。
总之,更早的接触设计模式,了解其背后的设计理念,会让你的代码质量质的增长。
每天进步一点点!我是90后IT男,日常分享原创或转载的知识!!