![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
沐雨金鳞
大行不顾细谨
展开
-
简单工厂模式、工厂模式、抽象工厂模式
简单工厂模式简单工厂模式不是23种里的一种,简而言之,就是有一个专门生产某个产品的类。比如下图中的鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标。就是利用一个工厂,根据参数,传啥new啥,返回 "惠普鼠标" -> new HpMouse() "戴尔鼠标" -> new DellMouse()工厂模式工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。生产哪种...原创 2020-10-10 21:13:19 · 156 阅读 · 0 评论 -
设计模式七大原则
之前早已经学过了,不过根据名字很容易忘记实质性内容,简单总结一下: 单⼀职责原则 ⼀个类应该只负责⼀项职责 1、将类按功能拆分成多个类。 2、如果类内⽅法(功能)少,则没必要拆分,在⽅法上实现单⼀职责原则即可。 接⼝隔离原则 类实现的接⼝应该建⽴在最⼩接⼝上,不应该实现不需要的接⼝的⽅法 将大接⼝分解成小接口供类实现 依赖倒置原则 抽象不应该原创 2020-10-05 15:17:39 · 184 阅读 · 0 评论 -
静态代理和动态代理
一、静态代理静态代理很简单,其实就类似于装饰者模式,再次封装一次的意思。看一下静态代理最基本、最简单的实现过程:1、(接口类)父类接口:package proxy;public interface UserManager { // 负责user方法执行 public void UserOpotion();}2、(委托类)实现父类接口,实现基本方法package proxy;public class UserManagementImpl im..原创 2020-06-29 09:32:19 · 245 阅读 · 0 评论 -
设计模式原则:接口隔离原则
设计模式原则:接口隔离原则接口隔离原则: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。(图片来自网络)见上图,该把接口细分到3个接口中去,保证每个类都只实现它需要的接口。接口隔离原则与单一职责原则有什么区别呢?单一职责原则,是指一个类只应该响应一个变化。比如一个赛马的程序,需要两个功能一是记每匹马跑的圈数,另一个是计算谁是对每匹马计算最终得分。...转载 2018-05-11 11:21:00 · 198 阅读 · 0 评论 -
设计模式原则:开放封闭原则
开闭原则,顾名思义,对扩展开放,对修改封闭。在谈细一点,对什么扩展开放?对什么修改封闭?还是用经典的Client和Server举例吧。客户端使用服务器,或者叫使用服务器提供的服务。在左边的图,客户端直接依赖于服务。这会造成,一旦由另一个提供程序服务,则客户端也需要修改。当增加了Client In...转载 2018-05-11 11:17:15 · 380 阅读 · 0 评论 -
设计模式原则:依赖倒置原则
设计模式原则:依赖倒置原则通常情况的设计都是高层模块依赖于低层模块。这样看似顺理成章,低层模块不怎么变动,高层模块调用低层模块。但是事实上,事物总是在变化,经常低层模块变化,引起高层一系列的变化。看看依赖倒置是怎样解决这个问题的?它的两个原则:1. 高层模块不该依赖于低层模块, 二者都该依赖于抽象2. 抽象不应该依赖于细节,细节应该依赖于抽象看下图,在层之间加入接口抽象类。...转载 2018-05-11 11:05:39 · 1040 阅读 · 0 评论 -
设计模式原则:单一职责原则
设计模式原则:单一职责原则“一个类仅有一个职责”或者“引起类变化的只有一个原因”,这就是单一职责原理。类只因一个原因而变化,这仿佛是一种新的类定义方式。当接触面向对象编程时,试图把一个类对比为一个事物,事物具备的功能都是这个类的操作。比如,一根尺子,既可以用来打学生手板,也可以用来丈量布匹。而在单一职责原理下,尺子的两个功能就是引起这个类变化的两个原因,就应该写成两个类。如果混...转载 2018-05-11 11:00:49 · 223 阅读 · 0 评论 -
设计模式原则:里氏替换原则
设计模式原则:里氏替换原则         肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T转载 2018-05-11 10:37:42 · 159 阅读 · 0 评论 -
设计模式之观察者模式(气象站案例)
气象监测的应用概况三个部分: 气象站:获取气象数据的物理装置。 WeatherData对象:a.获取来自气象站的数据. b.更新布告板. 布告板:显示天气状况.WeatherData对象中含有的函数:getTemperature();getHumidity();getPressure();measurementsChanged();我们的任务即是实现measurementsChange原创 2017-05-09 18:42:56 · 3635 阅读 · 1 评论 -
设计模式之简单工厂(披萨案例)
首先看下面代码:Duck duck = new MallardDuck();分析:我们采用new来实例化具体类,用的是实现,而非接口,代码捆绑具体类导致代码脆弱,缺乏弹性。倘若Duck种类变多时:Duck duck;if(picnic){ duck = new MallardDuck();}else if(hunting){ duck = new De原创 2017-05-11 19:11:35 · 4265 阅读 · 0 评论