设计模式总结(Java)
最近在学习设计模式,不做笔记是不行的,于是乎就想到开个专栏,本专栏主要是看完“Head First”的《设计模式》之后的理解,读者若有兴趣可以去看看那本书,真的写得很好。
Alexander的鸭梨山大
偶尔分享一些乱七八糟的操作。。。。。。。。
展开
-
【设计模式总结】6、工厂模式——抽象工厂模式
上一节我们总结了工厂方法,这一节,我们来总结抽象工厂。抽象工厂顾名思义,抽象工厂就是在工厂方法之上再进行抽象。可以用于构建一个十分庞大的"生产-消费系统",可以创建产品家族。正式定义:提供一个接口,用于创建相关或依赖对象的家族,而不需明确指定具体类。部分类图:整个系统看似复杂,其实构建起来还是比较容易的,只需要在上一节的基础上,封装一个抽象工厂接口即可。代码实现略。工厂模式主要的特...原创 2019-06-25 16:14:00 · 120 阅读 · 0 评论 -
【设计模式总结】5、工厂模式——工厂方法模式
前面我们总结了简单工厂,简单工厂运用非常广泛,但有局限性,适用于单用户,即一个Client(相对于工厂的客户),而一旦用户多了就不再适用。这里我们引入工厂模式之工厂方法模式:定义一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法用来处理对象的创建,并将这样的行为封装在子类中。类图:两个模块属于平级的关系这里的createProduct方法就是工厂方法clientA和B关...原创 2019-06-25 15:08:59 · 229 阅读 · 0 评论 -
【设计模式总结】4、工厂模式——简单工厂
开始之前,必须得注明一下,简单工厂并不是设计模式,它是一种编程习惯,方便后续引入工厂方法模式和抽象工厂模式。简单工厂:简单工厂非常简单,就是将所有类型实例化封装成一个类,用于解决使用new很多,违背了针对接口编程设计原则的问题,这也是工厂模式的设计原因之一。UML类图:Clien通过SimpleProductFactory取得Product实例。SimpleProductFactory...原创 2019-06-25 12:04:10 · 108 阅读 · 0 评论 -
【设计模式总结】3、装饰者模式
装饰者模式是个非常著名的模式,学过Python的应该知道有个东西叫装饰器,与装饰者模式的概念类似。有关Python装饰器请点击。那么装饰者模式到底有什么用,下面给出装饰者模式的概念:动态地将责任附加到对象上。扩展想要的功能,装饰者提供有别于继承的另一种选择。总结一句话就是,装饰者模式用于动态扩展功能。下面是装饰者模式类图注:Decorator也可以用接口,装饰者模式的Component...原创 2019-06-23 17:55:13 · 122 阅读 · 0 评论 -
【设计模式总结】2、观察者模式
观察者模式是个非常常见的设计模式,窗体程序中、MVC等都大量使用了观察者模式。观察者模式,可以理解为采用订阅、推送消息的方式实现一对多(其实还可以‘拉’消息,Java内置库中有相应实现,但‘推’更为巧妙,本文实现用的‘推’)。概念在对象之间定义一对多依赖,这样一来,当一个对象改变状态,依赖他的对象会收到通知,并自动更新。主题与观察者*《HeadFirst 设计模式》*一书中提到了订阅报纸...原创 2019-06-21 18:54:30 · 218 阅读 · 0 评论 -
【设计模式总结】1、设计模式入门及策略模式
设计模式,我认为是一种规范,一种解决方案,以及一种工具箱;在使用面向对象程序语言的时候,常常会用到设计模式,来使代码更有效率。学会设计模式,还可以极大减少代码编写者互相交流时的歧义。这里我们将介绍第一种设计模式——策略模式首先我们先来了解OO,即Object Oriented,面向对象。学过面向对象应该知道以下几点1、OO基础抽象封装多态继承2、OO基本原则封装变化多用...原创 2019-06-21 12:29:06 · 112 阅读 · 0 评论