欢迎来到天天文库
浏览记录
ID:39969020
大小:379.57 KB
页数:14页
时间:2019-07-16
《java设计模式-系列一x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java设计模式分类Java设计模式从大的方向来分大概分为以下几种创建模式创建模式包含了单例模式,工厂模式,抽象工厂模式,建造模式和原型模式结构模式结构模式包含了适配器模式,桥梁模式,代理模式,享元模式,组合模式,装饰模式,门面模式行为模式行为模式包含了责任链模式,策略模式,模板模式,备忘录模式,观察者模式,状态模式,命令模式,迭代子模式,访问者模式,解释器模式,调停者模式第2页设计模式特点一览万事交给子类模板方法模式(TemplateMethod)工厂模式(FactoryPattern)建立对
2、象实例单例模式(SingletonPattern)原型模式(PrototypePattern)构建者模式(BuilderPattern)抽象工厂模式(AbstractFactory)割接性思考桥接模式(BridgePattern)策略模式(StrategyPattern)适配器模式(AdapterPattern)一视同仁组合模式(CompositePattern)装饰者模式(DecoratorPattern)在结构中穿梭迭代器模式(IteratorPattern)访问者模式(VisitorPat
3、tern)职任链模式(ChainOfResponsibility)精简不浪费享元模式(FlyweightPattern)代理模式(ProxyPattern)用类来表法命令模式(CommandPattern)解释器模式(InterpreterPattern)状态模式(StatePattern)简单最好外观模式(FaçadePattern)中介者模式(MediatorPattern)管理状态观察者模式(ObserverPattern)备忘录模式(MementoPattern)状态模式(StatePa
4、ttern)单例模式(线程安全,建议使用该写法)classInternalSingleton{privatestaticclassSingletonHolder{privatefinalstaticInternalSingletonINSTANCE=newInternalSingleton();}privateInternalSingleton(){}publicstaticInternalSingletongetInstance(){returnSingletonHolder.INSTANCE
5、;}}简单工厂模式Publicabstract水果{publicabstractvoideat();}Publicclass苹果extends水果{publicvoideat(){System.out.println(“吃了一个苹果”);}}Publicclass梨子extends水果{publicvoideat(){System.out.println(“吃了一个梨子”);}}Publicclass水果工厂{public水果create(Stringtype){if(type.equals(“
6、苹果”)){returnnew苹果();}elseif(type.equals(“梨子”)){returnnew梨子();}else{returnnull;}}}抽象工厂模式Publicabstractclass抽象农场主{publicabstract水果工厂createFruitFactory();publicabstract蔬菜工厂createVegeFactory();}Publicclass农场主extends抽象农场主{public水果工厂createFruitFactory(){re
7、turnnew水果工厂();}publicclass蔬菜工厂createVegeFactory(){returnnew蔬菜工厂();}}Publicclass水果工厂{public水果create(Stringtype){//根据type获取水果returnnew水果实现类();}}Publicclass蔬菜工厂{public蔬菜create(Stringtype){//根据类型获取蔬菜returnnew蔬菜实现类();}}在这里抽象农场主就是抽象工厂,农场主则为抽象工厂的实现,通过农场主可以获
8、取到水果产品工厂和蔬菜产品工厂,这样的目的就是为了能够将各类不同的产品逻辑不纠缠在一个对象中,而是分别进行处理建造模式建造模式即是指给出一个抽象的接口,用来规范产品对象的各个组成成分的建造。举个例子,建造一个房子,那么就需要建墙,建门,装修等操作,做完这些操作就可以得到一个房子Publicabstractclass抽象房子建造{publicabstractvoid建墙(intnum);publicabstractvoid建门(intnum);publicvoid装修(){Sytem.out.p
此文档下载收益归作者所有