设计模式
SuNew_bee
这个作者很懒,什么都没留下…
展开
-
创建型模式之工厂模式
工厂模式是一种常见的设计模式,通过定义一个创建对象的接口,让子类决定将哪个工厂类实例化。原创 2021-12-21 16:51:35 · 153 阅读 · 0 评论 -
依赖倒置原则
&emsp 依赖倒置指的是高层模块不应该依赖于底层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。 未优化案例 案例中以抽奖场景为背景,设计了两种不同的抽奖方式(抽奖逻辑对不对先不管,主要是为了演示)。 public class BetUser { private String userName; // 用户姓名 private int userWeight; // 用户权重 public BetUser() { }原创 2021-12-10 22:52:49 · 264 阅读 · 0 评论 -
接口隔离原则
接口隔离原则的定义是客户端不应该被迫依赖于它不使用的接口,一个类对另一个类的依赖应该建立在最小的接口上。接口隔离原则要求程序员尽量将庞大的接口拆分成更小而具体的接口。当然,接口不是越小越好,一个接口应该值服务于一个子模块或逻辑,更具业务需求设计接口,减少对外交互,提供调用者需要的方法,屏蔽不需要的方法。 未优化例子 以王者荣耀的英雄和技能为例,将英雄技能抽象为接口方法,两个英雄实现该接口。 public interface ISkill { //灼日之矢 void doArch原创 2021-12-10 22:22:51 · 437 阅读 · 0 评论 -
迪米特法则原则
迪米特法则又称为最少知道原则,一个对象类对于其他类来说,知道的越少越好。两个类之间不要有过多的耦合,保持最少的关联,有内在联系的类要高内聚,没有直接关系的类应该低耦合。 未优化案例 例子里有老师、学生、校长三者,老师负责了解每一个学生的成绩而校长值关系班级总成绩和平均分,即班级的总体情况。 public class Student { private String name; // 学生姓名 private int rank; // 考试排名(总排名) p原创 2021-12-10 11:19:19 · 294 阅读 · 0 评论 -
里氏替换原则
如果S是T的子类,那么所以T类型的对象都可以被S类型的对象替换。也就是说子类可以扩展父类的功能但不能改变原有的功能,尽量不重新父类的方法。里氏替换原则包含四点:1、子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。2、子类可以增加自己的方法。3、子类重载父类的方法时,方法的入参要比父类更宽松。4、子类方法重写、重载父类方法或实现抽象方法时,方法的输出或返回应该比父类更严格或相等。 里氏替换原则的作用 1、是实现开闭原则的重要方式。2、解决了重写父类方法导致复用性变差的问题。3、类的扩展不会给原原创 2021-12-10 10:44:32 · 255 阅读 · 0 评论 -
六大设计原则之开闭原则
开闭原则要求对象、类、模块、函数对扩展开发,对修改封闭。所以要用抽象来定义结构,用实现扩展细节,可以理解为面向抽象编程,定义接口并实现方法,在扩展时通过继承的方式扩展。 案例 public interface ICalculationArea { //计算长方形面积 double rectangle (double x, double y); //计算三角形面积 double triangle(double x, double y, double z);原创 2021-12-09 23:14:42 · 240 阅读 · 0 评论 -
单一职责原则
单一职责又称单一功能原则,规定一个类应该只有一个发生变化的原因。职责指发生变化的原因,如果一个类有多个原因引起变化,那么后续迭代维护和拓展可能会带来很多麻烦。 以视频网站用户分类为例 简单地假设某个视频网站的用户分为访客用户、普通会员、VIP会员三类。 访客:只能观看480P高清,有广告;普通会员:可以观看720P超清,有广告;VIP会员:可以观看1080P蓝光,无广告。 简单地直接实现的方式: public class VideoUserService { public void s原创 2021-12-09 21:55:25 · 109 阅读 · 0 评论