设计模式
文章平均质量分 51
ai_0922
这个作者很懒,什么都没留下…
展开
-
工厂方法模式详解
工厂方法模式详解 工厂方法模式定义工厂方法模式是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。适用场景创建对象需要大量重复的代码客户端(应用层)不依赖于产品类实例如何被创建、实现等细节一个类通过其子类来指定创建哪个对象缺点类的个数容易过多,增加复杂度增加的系统的抽象性和理解难度实践案例以生产手机为例:工厂方法主要解决产品扩展的问题,在简单工厂中,随着产品的丰富,如果每个课程的创建逻辑有区别的原创 2022-04-12 16:46:07 · 404 阅读 · 0 评论 -
简单工厂模式详解
简单工厂模式详解 简单工厂模式定义简单工厂模式是指由一个工厂对象决定创建出哪一种产品类的实例,但它不属于GOF23中设计模式。适用场景适用于工厂类负责创建的对象较少的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关系。缺点工厂类的职责相对过重,不易于扩展过于复杂的产品结构实践案例以生产手机为例public interface IPhone { //生产 void produce();}public class原创 2022-04-12 16:36:45 · 475 阅读 · 0 评论 -
设计模式简介
设计模式简介设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。经典框架中的设计模式应用SpringIOCAOPMVCJDBC常见的设计模式工厂模式单例模式代理模式装饰器模式委派模式适配器模式模板方法模式观察者模式策略模式原型模式常见的设计模式分类类型名称英文创建型模式工厂模式Factory Pattern单例模式Single原创 2022-04-12 16:15:52 · 455 阅读 · 0 评论 -
Composie&Aggregate Reuse Principle 合成复用原则
Composie&Aggregate Reuse Principle 合成复用原则简介定义:尽量使用对象组合、聚合、而不是继承关系达到软件复用的目的主要核心思想尽量使用对象组合、聚合,而不使用继承关系达到代码复用的目的。聚合has-a和组合contains-a优点可以使系统更加灵活,降低类与类之间的耦合度一个类的变化对其他类造成的影响相对较少实践案例数据库连接为例public abstract class DBConnection { public ab原创 2022-04-12 16:06:13 · 786 阅读 · 0 评论 -
Liskov Substitution Principle 里氏替换原则
Liskov Substitution Principle 里氏替换原则简介定义:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型,定义扩展:一个软件实体如果使用一个父类的话,那一定适用于其子类,所有引用父类的地方必须能透明地使用其子类的对象,子类对象能够替代父类对象,而程序逻辑不变。主要核心思想强调只和朋友交流,不和陌生人说话朋友:出现在成员变量、方法的输入、输出原创 2022-04-12 16:02:04 · 255 阅读 · 0 评论 -
Law of Demeter 迪米特法则
Law of Demeter 迪米特法则简介定义:一个对象应该对其他对象保持最少的了解。又叫最少知道原则主要核心思想强调只和朋友交流,不和陌生人说话朋友:出现在成员变量、方法的输入、输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。优点降低类之间的耦合度实践案例领导部署任务给员工为例public class Course { Integer courseId; String courseName;}public class Emplo原创 2022-04-12 15:51:45 · 170 阅读 · 0 评论 -
Interface Segregation Principle 接口隔离原则
Interface Segregation Principle 接口隔离原则简介定义:用多个专门的接口,而不是使用单一的总接口,客户端不应该依赖它不需要的接口主要核心思想尽量保证接口的纯洁性,客户端不应该依赖不需要的接口优点符合我们常说的高内聚、低耦合的设计思想使得类具有很好的可读性、可扩展性和可维护性实践案例动物行为为例V1:public interface IAnimal { void eat(); void fly(); void swi原创 2022-04-12 15:47:40 · 146 阅读 · 0 评论 -
Simple Responsibility Principle 单一职责原则
Simple Responsibility Principle 单一职责原则简介定义:不要存在多余一个导致类变更的原因主要核心思想强调一个类、接口、方法只负责一项职责优点降低类的复杂度提高类的可读性提高系统的可维护性降低变更引起的风险实践案例课程为例public interface ICourse { String getCourseName(); byte[] getCourseVideo(); void studyCourse();原创 2022-04-12 15:38:11 · 85 阅读 · 0 评论 -
Dependence Inversion Principle 依赖倒置原则
Dependence Inversion Principle 依赖倒置原则简介定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象主要核心思想强调抽象不应该依赖细节;细节应该依赖抽象,及针对接口编程,不要针对实现编程优点可以减少类间的耦合性、提高系统稳定性提高代码可读性和可维护性可降低修改程序所造成的风险实践案例手机为例:618活动中Aaron购买了多部品牌手机public interface IPhone { void buy();}public cl原创 2022-04-12 15:34:32 · 138 阅读 · 0 评论 -
Open-Closed Principle 开闭原则
Open-Closed Principle 开闭原则简介定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭强调用抽象构建框架,用实现扩展细节优点:提高软件系统的可复用性及可维护性手机为例:手机售价618促销public interface IPhone { Integer getId(); String getModel(); String getSpecification(); Double getPrice();}public clas原创 2022-04-12 15:27:38 · 160 阅读 · 0 评论 -
设计模式学习笔记
设计模式面向对象的编程,并不是类也多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性的功能和队形的抽象集合才是类如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离如果你能够想到多余一个...原创 2019-04-28 22:49:02 · 1337 阅读 · 0 评论