设计模式
文章平均质量分 85
Autumn匆
这个作者很懒,什么都没留下…
展开
-
代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。例子:《大话设计模式》追女朋友例子被追求者package Proxy; public class SchoolGirl { public String name; public void setName(String name){ this.name=name; } public String getName(){ ret...原创 2018-06-21 11:33:36 · 186 阅读 · 0 评论 -
设计模式概述
一,概述总体来说,设计模式分为三大类:1.创建型模式,共五种工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式2.结构型模式,共七种适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式3.行为型模式,共十一种策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式二,具体概括1.Singleton,单...原创 2018-06-19 16:29:18 · 151 阅读 · 0 评论 -
原型模式
原型模式Prototype:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象例子:进行简历复制先建立一个工作经历类package Prototype; public class WorkExperience implements Cloneable{ public String workDate; public String company; public String get...原创 2018-06-24 10:48:02 · 255 阅读 · 0 评论 -
模板方法模式
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。AbstractClass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法,这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现,顶级逻辑也有可能调用一些具体方法package Template...原创 2018-06-24 19:52:02 · 189 阅读 · 0 评论 -
简单工厂模式-工厂方法模式
在实际应用中,我们可以考虑使用封装、继承、多态把程序的耦合度降低。例子1:写一个计算器模拟程序思路:将业务进行封装,并且进行松耦合,即不同的运算类之间互相不影响,可考虑通过继承一个类或者实现一个接口类Operation,定义计算的统一接口package SmpleFactory; public class Operation { public double numberA=0; public...原创 2018-06-19 21:21:22 · 283 阅读 · 0 评论 -
策略模式
定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。例子:商场收银,营业员根据客户所购买商品的单价和数量,向客户收费,但有时候会有打折或者满减活动,eg:打八折,满300送100先用上个学习到的简单工厂实现一下建立一个现金收费的抽象类package celv; abstract class CashSuper { // 现金收取超类的抽象方法,收取...原创 2018-06-20 09:34:54 · 157 阅读 · 0 评论 -
装饰者模式
例子:一个可以给人搭配不同服饰的系统,即可以换各种各样的衣服裤子的个人形象系统最先想到的是,先建一个Person类package deractor; public class Person { private String name; public Person(String name){ this.name=name; } public void show(){ System....原创 2018-06-20 15:59:59 · 369 阅读 · 0 评论 -
外观模式
外观模式Facade,为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。例子:炒股投资者可能面对多种股票package Facade; public class Stock1 { public void sell(){ System.out.println("股票1卖出"); } public void buy(){ System....原创 2018-06-28 10:19:51 · 165 阅读 · 0 评论 -
观察者模式
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时会通知所有观察者对象,使它们能够自动更新自己Subject类,即主题或是抽象通知者,一般用一个抽象类或者一个接口实现,把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者,抽象主题提供一个接口,可以增加和删除观察者对象package Observer; import j...原创 2018-06-28 11:23:04 · 267 阅读 · 0 评论