![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
g1191613819
成为自己的英雄
展开
-
依赖倒置原则
抽象不应该依赖细节(电脑的内存条设计不应该是指定哪个主板才能用),细节应该依赖抽象(但是内存条的设计必须要遵循接口公共的约定,否则安不上去) ...原创 2019-04-10 10:10:29 · 59 阅读 · 0 评论 -
迪米特法则(最少知识原则)
两个类互相通信的时候应该尽可能的针对接口,而不是具体的类的内部成员(一个类应该最大可能的隐藏自己的成员,降低耦合度)原创 2019-05-06 18:44:22 · 121 阅读 · 0 评论 -
原型模式
当你需要一个对象的原型的时候(复制),这时候你可以会需要用到原型模式 一、在去公司面试的时候,你肯定需要简历,你可能会把一份简历复印多份,用代码描述下简历复印的过程 简历类: public class Resume{ private String name; private String sex; private WorkTime workTime; public ...原创 2019-04-23 22:08:08 · 78 阅读 · 0 评论 -
模板方法
当各个子类中存在大量相同的代码,然而也存在部分不同的代码时,这时候应该考虑把相同的代码抽取到父类成为一个模板,然后把每个子类各自不同的代码在父类中表示为抽象方法,在子类重写 一、下面请看一个例子:有两份相同的试卷,小明和小王进行答题 抽象父类 public abstract class Paper { public abstract String Answer1(); publ...原创 2019-04-23 16:59:45 · 87 阅读 · 0 评论 -
工厂方法模式
工厂方法模式与简单工厂模式的主要区别在于:工厂方法模式将简单工厂模式的工厂类抽象为一个父类,然后有多个子类的生成工厂 一、编写一个学雷锋做好事程序 雷锋父类: public class LeiFeng { public void sweep() { System.out.println("扫地"); } public void boilingWater() { System....原创 2019-04-26 10:26:37 · 113 阅读 · 0 评论 -
开放-封闭原则
对扩展是开放的,对修改是封闭的原创 2019-04-10 09:49:09 · 109 阅读 · 0 评论 -
单一职责原则
就一个类而言,应该仅有一个引起它变化的原因,只负责单一的一个功能原创 2019-04-10 09:47:52 · 58 阅读 · 0 评论 -
策略模式
请看下面的例子: 一、请编写一个商城的收银系统,能应对商城不同的优惠变化 1.假设该商城有三种不同的优惠策略(没有折扣,打几折,满多少返现) 折扣策略抽象类: public abstract class Sale { private double price; private int num; public double getPrice() { return p...原创 2019-04-09 23:58:29 · 73 阅读 · 0 评论 -
代理模式
表面上调用的是代理类的方法,实际上该代理类的方法又调用的真正类的方法,即代理(可以代替真实类的功能) 一、编写一个例子:一个追求者通过代理人向暗恋的女孩送礼物 1.送礼物的行为接口 public interface SendGift { void giveFlower(); void giveSugar(); } 2.追求者 public class RealLover impl...原创 2019-04-15 21:24:01 · 86 阅读 · 0 评论 -
简单工厂模式
下面用一个模拟计算器的例子简单讲解一下: 一、控制台输入两个数和运算符,模拟加减乘除四则运算 1.加、减、乘、除四种操作均为运算操作,可抽取抽象公共父类Operator public abstract class Operator { //操作数number_A private String number_A; //操作数number_B private String numb...原创 2019-04-07 21:33:16 · 76 阅读 · 0 评论 -
装饰者模式
主要的核心逻辑、功能不改变,动态的添加额外的功能、职责 一、编写一个可以任意换装的系统 核心逻辑类(不变): public class People { public void display() { System.out.println("的小明"); } } 额外功能父类: public class Decorate extends People{ } T恤...原创 2019-04-10 13:46:16 · 49 阅读 · 0 评论 -
里氏代换原则
子类可以完全替代父类原创 2019-04-10 10:15:35 · 267 阅读 · 0 评论 -
外观模式
将复杂的成员封装起来,提供一个简单的接口以便使用 一、基金和股票的例子,基金机构帮你处理复杂的股票买卖的问题,你只需要看基金的涨跌这个简单的问题 基金类: public class Fund { private ShareA shareA=new ShareA(); private ShareB shareB=new ShareB(); public void sell(...原创 2019-05-06 19:19:50 · 76 阅读 · 0 评论