java中的设计模式及类部类的定义与使用

1.    设计模式:主流的设计模式主要有23种,它们的特点是实用性好,代码简洁,结构美观著称。

2.    架构模式:目前主流的架构模式主要有B/S架构,和C/S架构,判断一种架构属于哪一种架构,主要看其逻辑代码的位置,若逻辑代码在服务器,属于B/S架构,若在客户端,则表示属于C/S架构,B/S架构是一种轻量级、方便升级和修改,越来越多的软件采用该架构,尤其是企业里;C/S适用于必须依赖客户端,依赖大运算的软件,特别是游戏类的软件,主要特点是速度快,但不便于升级和更新。

3.    设计模式和架构模式的区别和联系:架构模式属于一种战略模式,而设计模式只是一种战术模式,是一个整体与局部的关系。

4.    简单工厂模式:不属于23种经典设计模式之内的一种入门的创建性的模式,对象的批量生产,例如:

a)     定义一个售票员接口,里面声明三个方法

                                                                        i.          void  找钱();

                                                                       ii.          void 查询();

                                                                     iii.          void  出票();

b)     新建三个售票员接口的实现类,分别实现了售票员接口的类分别是:售票员实现类A,售票员实现类B和售票员实现类C

c)     新建一个Factory工厂类,在里面编写一个创建售票员对象的方法

 

d)      

                                            i.          扩展一:

如果感觉售票员的实现类不够,可以增加一个售票员的实现类,以完成功能的添加

                                           ii.          扩展二:

如果售票员A想增加一个唱歌的方法,就需要新建一个一个A1类去继承售票员A的类,再实现一个接口,该接口里定义了一个唱歌的方法即可。、

                iii.扩展三:

如果售票员A的某些方法过时了,可以为A类增加一个子类,重写父类的的该过时的方法。

5.    工厂模式的优点:工厂模式是一种隐藏式的创建对象,将创建对象的过程隐藏,只需要调用工厂类的方法去创建对象,而不考虑接口的实现类,是一种面向父类的编程。

6.    单例模式:单例模式就是定义一个只能生成一个唯一的实例对象的类,适用于类似于地球,太阳,月亮型的类型定义,它的访问频率很高,但不能作为信息的记载者的情况,单例模式分为懒汉式单态和饿汉式单态,它们分别是:

a)     懒汉式单态:用的时候在构造对象,优点是不提前加载资源,但范问速度较慢,懒汉式单例模式的实例对象的方法必须加上 synchronized 关键字,可以处理多任务的并发访问。

b)     饿汉式单态:一开始就够造好对象,优点是访问速度快,但是提前加载资源,有可能造成浪费。

7.    内部类:定义在一个类里面的类,即一种类中类,主要有以下特点:

a)     可以看做是其包含类的属性;

b)     通过类名.静态方法和属性来访问;

c)     内部类可以直接访问外部类的属性和方法;

d)     若内部类是静态的,只能访问外部类的静态成员;

e)     外部类可以直接new 一个静态的内部类对象;

8.    匿名内部类(还有内部接口):匿名内部类没有类名,只有方法实现,一般的格式都是:

a)     new 接口名/抽象类名/普通类名(){},分别表示{}括号类立即实现接口/继承抽象类/继承普通类并选择性的重写父类方法

b)     其位置是定义在方法和属性上使用;

c)     生成的class文件,若是第一个匿名内部类,第二个依次类推,表示为:

                                                                        i.          Test$1.class

                                                                       ii.          Test$2.class

                                                           …

                                                                     iii.          Test$n.class

9.若是方法里使用匿名内部类,该匿名内部类中的方法要访问该方法里定义的局部变量,该局部变量必须定义为final 类型的,因为例如该属性为 age ,如果不是final类型的,内部方法就不能访问,age只是一个变量,会随着程序的运行而动态的改变,而final修饰的变量是一个不能改变的常量,也就是说age的值是一个常量的地址,该地址是不会发生变化的,所以我们可以通过地址访问该常量,而不会出现错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值