Design pattern
文章平均质量分 56
设计模式
Coder_JJ
没伞的孩子要努力奔跑!
展开
-
Java设计模式七大原则
使用意义 代码可重用 可读性(编程规范) 可扩展性(可维护性) 可靠性(增加新功能,对原来的功能没有影响) 高内聚,低耦合 核心思想 独立出应用中可能需要变化的代码 针对接口编程,而不是针对实现编程 交互对象之间为松耦合设计 七大原则 单一职责原则 接口隔离原则 依赖倒转原则 里式替换原则 开闭原则 迪米特法则 合成复用原则 ...原创 2020-04-15 19:06:39 · 150 阅读 · 0 评论 -
迪米特法则
要点 一个对象应该对其他对象保持最少的了解 类与类的关系越密切,耦合度越大 迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好 只与直接的朋友通信 直接朋友:每个对象与其他对象有耦合关系,这种耦合关系也叫作朋友关系。出现在成员变量、方法参数、方法返回值的类为直接朋友,出现在局部变量中的类不是直接朋友。耦合的方式包括依赖、关联、组合、聚合等。 旧版 //客户端 public cla...原创 2020-04-15 19:04:14 · 227 阅读 · 0 评论 -
开闭原则
要点 最基础、最重要的原则 对(提供方)扩展开放,对(使用方)修改关闭 旧版 public class Ocp { public static void main(String[] args) { //使用看看存在的问题 GraphicEditor graphicEditor = new GraphicEditor(); graphicEditor.drawShape(new ...原创 2020-04-14 21:21:09 · 167 阅读 · 0 评论 -
里式替换原则
要点 在子类中尽量不要重写父类的方法 旧版 public class Liskov { public static void main(String[] args) { // TODO Auto-generated method stub A a = new A(); System.out.println("11-3=" + a.func1(11, 3)); System....原创 2020-04-14 21:09:07 · 128 阅读 · 0 评论 -
接口隔离原则
要点 一个类对另一个类的依赖应该建立在最小的接口上 旧版 public class Segregation1 { public static void main(String[] args) { // TODO Auto-generated method stub A a=new A(); a.depend1(new B()); a.depend2(new B()); ...原创 2020-04-13 23:18:17 · 221 阅读 · 0 评论 -
单一职责原则
要点 一个类只负责一项职责 代码 public class SingleResponsibility1 { public static void main(String[] args) { // TODO Auto-generated method stub Vehicle vehicle = new Vehicle(); vehicle.run("摩托车"); vehic...原创 2020-04-13 21:43:17 · 195 阅读 · 1 评论 -
菜鸟升级记——状态模式
状态模式原创 2019-02-15 15:00:50 · 151 阅读 · 6 评论 -
菜鸟升级记——装饰模式
装饰模式 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活原创 2019-02-13 17:18:43 · 160 阅读 · 4 评论 -
菜鸟升级记——适配器模式
适配器模式(Adapter) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。 举例1:部分显示器是VGA的插头,但是大部分笔记本电脑只有HDMI的插孔,要想笔记本电脑和显示器一起工作,则必须需要一个“VGA转HDMI的转换器”,就相当于适配器模式。 举例2:笔记本电脑大多由国外生产,但是不同的国家对于电压的要求也不太相同,有...原创 2019-02-13 09:51:04 · 190 阅读 · 5 评论 -
菜鸟升级记——建造者模式
建造者模式 建造者模式又叫“生成器模式”,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 <代码解读> class Program { static void Main(string[] args) { Director director=new Director();//实例化指挥者...原创 2019-02-16 21:51:29 · 193 阅读 · 12 评论 -
菜鸟升级记——迭代器模式
迭代器模式 提供一种方法的顺序/访问/一个聚合对象中各个元素(乘车人),而又不暴露该对象的内部(行李/内部员工/小偷/外国人)表示。 代码 IList<string> a = new List<string>(); a.Add("大鸟"); a.Add("小菜"); a.A...原创 2019-02-16 14:14:46 · 151 阅读 · 7 评论 -
菜鸟升级记——模板方法模式
模板方法模式原创 2019-02-15 11:52:24 · 212 阅读 · 5 评论 -
菜鸟升级记——原型模式
概述 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式实质就是从一个对象再创建另外一个可定制的对象。而且不需要知道任何创建的细节。 原型模式的核心在克隆。 理论 为什么要使用克隆? 因为对象是通过构造函数来创建的,如果我们要创建A/B/C三个对象,不采用克隆的话需将对象实例化三次,故构造函数中将存在大量的业务逻辑,那么在对象的创建过程中就会消耗不少资源...原创 2019-01-19 09:38:50 · 244 阅读 · 11 评论 -
菜鸟升级记——代理模式
概述 为其他对象提供一种代理以控制对这个对象的访问。 实践 模式中的角色 抽象类(接口) 真正类 代理类 中介 应用 远程代理 虚拟代理 安全代理 模式优缺点 优点 能够协调调用者和被调用者,在一定程度上降低了系统的耦合度。 客户端可以针对抽象类进行编程,增加和更换代理类无须修改源代码,符合开闭原则,系统具有较好的灵活性和可扩展性。 缺点 由于在客户端和真实类之间增加了代理类...原创 2019-01-18 10:03:51 · 291 阅读 · 5 评论 -
菜鸟升级记——工厂方法模式
概述 工厂方法模式是一种类创建型模式,此模式的核心精神是封装类中不变的部分,将易改动的部分设为独立类,通过依赖注入以达到解耦、复用和方便后期维护扩展的目的。 实践 模式中的角色 抽象工厂(Creator) 任何在模式中创建对象的工厂类必须实现这个接口。 具体工厂(ConcreteCreator) 抽象产品(Product) 具体产品(ConcreteProduct) 工厂方法模式和简单工厂...原创 2019-01-18 09:26:44 · 248 阅读 · 4 评论 -
菜鸟升级记——策略模式
策略模式指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。 举个例子:从北京到青岛的方式? 1)飞机 2)高铁 3)火车 4)长途汽车 5)私家车 6)自行车 7)走路 通过以上方式,我们都可以达到去青岛的目的,那么列出的这些方法,就是我们选择的策略。 概述 策略模式定义了一系列的算法,并将每一个算法封装起来,使每个算法可以相互替代,使算法本身和使用算法的客户端分割开来,相互独立。 模...原创 2019-01-03 12:06:40 · 240 阅读 · 5 评论 -
菜鸟升级记——简单工厂模式
大部分的编程学者在碰到问题的时候,就会直觉地用计算机能够理解的逻辑来描述和表达待解决的问题及具体的求解过程,再者就是采用面向对象的语言却做着面向过程的事儿。为了更好地解决这些问题,于是乎《大话设计模式》来啦~ 特性 封装 定义:每个对象都包含它能进行操作所需要的所有信息 好处:减少耦合(业务逻辑与界面逻辑分离);类内部的实现可以自由修改;类具有清晰的对外接口 继承 理解:如果两个对象A和...原创 2018-12-22 11:47:02 · 320 阅读 · 8 评论 -
大话设计模式前奏
&amp;amp;nbsp;&amp;amp;nbsp;《大话设计模式》难,确实难得出色。自己也在徘徊后随便翻了几页,大概也了解到一点东西,现如数写出,只是个人理解,毕竟没有深究,若有错误,不吝赐教。 模式 原则 font size=4&amp;amp;gt;OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。 理解:比如我现在有两个类,而我要增加新的功能,根据开闭原则,我要尽量通过原创 2018-12-09 21:23:07 · 170 阅读 · 3 评论