设计模式
23种设计模式
另一花生
竹杖芒鞋轻胜马,一蓑烟雨任平生
展开
-
设计模式之观察者模式注意事项
设计原则一找出程序中会变化的方面,然后将其和固定不变的方面相分离。在观察者模式中,会改变的是主题的状态,以及观察者的树木和类型。用这个模式,你可以改变依赖于主题状态的对象,却不必改变主题,这就叫提前规划;设计原则二针对接口编程,不针对实现编程主题与观察者都使用接口:观察者利用主题的接口向主题注册,而主题利用观察者接口通知观察者。这样可以让两者之间运作正常,又同时具有松耦合的优点。设计原则三多用组合,少用继承利用组合将许多观察者组合进主题中。对象之间的这种关系不是通过继承产生的原创 2021-09-12 23:48:44 · 140 阅读 · 0 评论 -
03 | 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
面向对象对于这部分内容,你需要掌握下面这 7 个大的知识点。面向对象的四大特性:封装、抽象、继承、多态面向对象编程与面向过程编程的区别和联系面向对象分析、面向对象设计、面向对象编程接口和抽象类的区别以及各自的应用场景基于接口而非实现编程的设计思想多用组合少用继承的设计思想面向过程的贫血模型和面向对象的充血模型总结1: 要真正落地面向对象编程,面向对象设计是前提,没有面向对象的设计意识,写着写着就成了面条代码。2:以前只知道封装、继承、多态,全然忽视了最重要的抽转载 2021-08-15 11:51:20 · 104 阅读 · 0 评论 -
02 | 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?
1.如何评价代码质量的高低?灵活性(flexibility)、可扩展性(extensibility)、可维护性(maintainability)、可读性(readability)、可理解性(understandability)、易修改性(changeability)、可复用(reusability)、可测试性(testability)、模块化(modularity)、高内聚低耦合(high cohesion loose coupling)、高效(high effciency)、高性能(high perf转载 2021-08-15 11:48:35 · 288 阅读 · 0 评论 -
01 | 为什么说每个程序员都要尽早地学习并掌握设计模式相关知识?
1. 应对面试中的设计模式相关问题2. 告别写被人吐槽的烂代码3. 提高复杂代码的设计和开发能力4. 让读源码、学框架事半功倍5. 为你的职场发展做铺垫转载 2021-08-15 11:46:59 · 104 阅读 · 0 评论 -
贫血模型概念
贫血模型流行的原因:实现简单和上手快。具体解释慢慢看:”贫血模型“的开发模式为什么会流行?1、实现简单。Object仅仅作为传递数据的媒介,不用考虑过多的设计方面,将核心业务逻辑放到service层,用Hibernate之类的框架一套,完美解决任务。2、上手快。使用贫血模式开发的web项目,新来的程序员看看代码就能“照猫画虎”干活了,不需要多高的技术水平。所以很多程序员干了几年,仅仅就会写CURD。3、一些技术鼓励使用贫血模型。例如J2EE Entity Beans,Hibernate等。总结:原创 2021-08-15 03:00:46 · 369 阅读 · 0 评论 -
迪米特原则
一个对象应该对其他对象保持最少的了解,又叫最少知道原则,尽量降低类与类之间的耦合度.迪米特原则主要强调:只和朋友交流,不和陌生人说话.出现在成员变量、方法的输入、输出参数中的类都可以成为成员朋友类,而出现在方法体内部的类不属于朋友类Boss让TeamLeader统计线上课程数量,TeamLeader把统计结果告诉Boss.public class Course {}public class TeamLeader { public void checkNumberOfCourses原创 2020-06-20 19:36:24 · 354 阅读 · 0 评论 -
接口隔离原则
是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。这个原则指导我们在设计接口时应当注意以下几点:1)一个类对另一个类的依赖应该建立在最小的接口之上;2) 建立单一接口,不要建立庞大臃肿的接口;3)尽量细化接口,接口中的方法尽量少(不是越少越好,一定要适度);接口隔离原则符合我们常说的高内聚,低耦合的设计思路,可以使类具有很好的可读性、可扩展性和可维护性。我们在设计接口的时候,要多花时间去思考,要考虑业务模型,包括对以后有可能发生变更的地方还要做一些预判。所以,对..原创 2020-06-17 10:42:37 · 286 阅读 · 0 评论 -
单一职责原则
是指不要存在多余一个导致类变更的原因。及假设有一个类负责2个职责:一旦发生需求变更,修改其中一个职责的逻辑代码,有可能导致另外一个职责的功能发生故障.这样一来,这个类就存在2个导致类变更的原因.如何解决这个问题呢?将2个职责用2个类来实现,进行解耦.降低类的复杂度,提纲类的可读性,提高系统可维护性,降低变更引擎的风险。总体来说,就是一个类、接口或方法只负责一项职责。public class Course { public void study(String courseName){.原创 2020-06-17 10:07:09 · 168 阅读 · 0 评论 -
依赖倒置原则
高层模块不应该依赖底层模块,二者都应该依赖其抽象.抽象不映泰依赖细节,细节应该依赖抽象。通过依赖倒置。可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并且能够降低修改程序所造成的风险.public interface ICourse { void study();}public class JavaCourse implements ICourse { @Override public void study() { System原创 2020-06-16 12:54:46 · 272 阅读 · 0 评论 -
开闭原则
强调用抽象构建框架,用实现扩展细节public interface ICourse { Integer getId(); String getName(); Double getPrice();}public class JavaCourse implements ICourse { private Integer id; private String name; private Double price; public JavaCou原创 2020-06-16 09:25:56 · 206 阅读 · 0 评论 -
Java设计模式之工厂方法
那这个过程我们就用程序来表现,首先定义一个人类的总称:public interface Human {//首先定义什么是人类//人是愉快的,会笑的,本来是想用smile表示,想了一下laugh更合适,好长时间没有大笑了;public void laugh();//人类还会哭,代表痛苦public void cry();//人类会说话public void talk();}然原创 2015-03-05 18:53:26 · 1168 阅读 · 0 评论