码迷,mamicode.com
首页 > 编程语言 > 详细

java30:设计模式

时间:2016-02-02 23:25:27      阅读:404      评论:0      收藏:0      [点我收藏+]

标签:解决方案   private   package   return   public   

设计模式:

    模式化的解决方案

        三类

    

    创见型模式:

        单例模式,工厂模式

    

    结构型模式:

        装饰模式,代理模式

                静态代理,动态代理

    

    行为型模式:

        模板模式,迭代器模式   



单例模式:

    又名单实例模式

        使用这个模式设计的类,全局应保证只有一个实例,不管什么时候都只有一个实例

package day30;
/**
 * 
 *	单例模式->当前类的实例,全局唯一
 */
public class Box {
	private int width;
	private int height;
	
	private static Box box = new Box();//定义一个私有的当前类型的属性 
	
	private  Box(){//私有的构造方法,外接就不能通过new 来创建实例了
	}
	
	public static  Box getBox(){//定义一个公用的静态方法,用于获取当前类型的,静态方法需要使用static属性
		return box;
	}
	
	public int getWith(){
		return width;
	}
	public int getHeight(){
		return height;
	}
	public void setWith(int width){
		this.width = width;
	}
	public void setHeight(int height){
		this.height =height;
	}
	
	
}

package day30;

public class TestBox {
	public static void main(String[] args){
		Box b1 = Box.getBox();
		b1.setHeight(2);
		Box b2 = Box.getBox();
		System.out.println(b1 == b2);
		System.out.println(b2.getHeight());
		
	}
}

    单例模式的实现步骤:

        1·私有化构造方法

         2·提供一个共有的静态的可以获取当前类型实例的方法

        3·定义一个私有的静态的当前类型的实例,给步骤2的方法返回




模板模式:

    定义一个操作中的算法过程的骨架,而将部分细节操作延迟到子类去实现

package day30;

public abstract class Person {//抽象类,对于模板大多是抽象的
	public void sayHello(){//介绍自己
		System.out.println("大家好");
		System.out.println("我叫"+getName());
		System.out.println(getInfo());
		System.out.println(sayGoodBye());
	}
	public abstract String getName();
	public abstract String getInfo();
	public abstract String sayGoodBye();
	
}

package day30;

public class Student extends Person{

	public String getInfo(){
		return "个人基本情况、教育背景、学习经历、外语和计算机应用水平、工作经验、个人成果获奖情况、能力和专长";
	}
	public String getName(){
		return "lmdtx";
	}
	public String sayGoodBye(){
		return "88";
	}
}

package day30;

public class Teacher extends Person{
	public String getInfo(){
		return null;
	}
	public String getName(){
		return "";
	}
	public String sayGoodBye(){
		return "さようなら";
	}
}

package day30;

public class TestPerson {
	public static void main(String[] args){
		Person p1 = new Student();
		p1.sayHello();
		Person p2 = new Teacher();
		p2.sayHello();
	}
}














    

本文出自 “浪漫的偷笑” 博客,转载请与作者联系!

java30:设计模式

标签:解决方案   private   package   return   public   

原文地址:http://lmdtx.blog.51cto.com/6942028/1740748

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!