Java设计模式

本文深入解析22种经典设计模式,包括单例、工厂、抽象工厂、适配器、装饰者、策略、观察者、命令、外观、模板、迭代器、状态、代理、复合、桥接、生成器、责任链、蝇量、解释器、中介者、备忘录、原型和访问者模式,探讨其应用与区别。

1.装饰者模式(参考Java IO编程):开放关闭原则的设计意义。、

 

2.策略模式:  

 

3.观察者模式:

 

4.单例模式: 

 

5.工厂模式:    

1.简单工厂模式

2.工厂方法模式。定义了一个创建对象的抽象方法,由子类决定要实例化的类,将对象的实例化推迟到了子类。

3.抽象工厂模式:定义了创建对象的抽象工厂接口,由实现该接口的类创建具体的对象。

 

6.命令模式:    

 

7.适配器模式: 

适配器模式和装饰者模式的区别:

1.举个栗子,装饰者模式在IO编程中是再被装饰者的基础上进行新功能的开发,而适配器模式则是对被适配者原有功能方法的组合开发调用,对外表现出目标对象的方法。

2.装饰者模式装饰出来的目标最终都是超类族中的一员,但是适配器模式适配的目标都是不同的新的对象,是层级关系。

 

8.外观模式:对一个子系统对外接口的简化。组合逻辑。

z

9.模板模式:      

我觉得多线程的run接口就是这种思想。

 

10.迭代器模式:

为了解决不同数据结构访问的困难

 

11.状态模式:    

 

 

12.代理模式:     

Java RMI概要:

        RMI远程方法调用是计算机之间通过网络实现对象调用的一种通讯机制。使用这种机制,一台计算机.上的对象可以调用另外一台计算机.上的对象来获取远程数据。
        在过去,TCP/IP通讯是远程通讯的主要手段,面向过程的开发。而RPC使程序员更容易地调用远程程序,但在面对复杂的信息传讯时,RPC依然未能很好的支持。RMI被设计成一种面向对象开发方式,允许程序员使用远程对象来实现通信
 

 

13.复合模式:前人总结的对于以上常见模式组合以后能够解决一系列问题的模式组(普适效果)。

 

14.桥接模式:左边抽象,右边实现,互不影响。

 

15.生成器 模式: 

生成器模式强调的是生成比较复杂的对象,而且该模式强调的是一步步的进行创建,可以通过不同的步骤以及改变不同的调用顺序可以生成不同的对象。而工厂模式强调的是直接生成返回特定的对象。

 16.责任链模式:       

 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。

17.蝇量模式(享元模式):

抽象享元角色: 所有具体享元类的父类,规定一些需要实现的公共接口。

具体享元角色: 抽象享元角色的具体实现类,并实现了抽象享元角色规定的方法。

享元工厂角色: 负责创建和管理享元角色。 

18.解释器模式:不常用(递归方式)

19.中介者模式:

 

20.备忘录模式:

 

21.原型模式:通过复制现有实例来创建新的实例,无须知道相应类的信息

注意事项:
●使用原型模式复制对象不会调用类的构造方法。所以,单例模式与原型模式是冲突的,在使用时要特别注意。
●Object类的clone方法只会拷贝对象中的基本的数据类型,对于数组、容器对象、引用对象等都不会拷贝,这就是浅拷贝。如果要实现深拷贝,必须将原型模式中的数组、容器对象、引用对象等另行拷贝。

 22.访问者模式:

java设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。 行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 设计模式遵循的原则有6个: 1、开闭原则(Open Close Principle)   对扩展开放,对修改关闭。 2、里氏代换原则(Liskov Substitution Principle)   只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。 3、依赖倒转原则(Dependence Inversion Principle)   这个是开闭原则的基础,对接口编程,依赖于抽象而不依赖于具体。 4、接口隔离原则(Interface Segregation Principle)   使用多个隔离的借口来降低耦合度。 5、迪米特法则(最少知道原则)(Demeter Principle)   一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。 6、合成复用原则(Composite Reuse Principle)   原则是尽量使用合成/聚合的方式,而不是使用继承。继承实际上破坏了类的封装性,超类的方法可能会被子类修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值