java 中 有 23 种设计模式

半城伤御伤魂 提交于 2019-12-15 01:41:03

java 中 有 23 种设计模式。

设计类的要求:
高内聚、低耦合。

高内聚:
类的内部的成员之间的关系是非常紧密的。

低耦合:
类和类之间的耦合度要尽量小。

简单工厂模式的作用:降低类和类之间的耦合度的。

/**
* 简单工厂模式,用来创建对象的
* @author yhl
*
*/
public class MyFactory {

       
       //写一个工厂方法,通过传入的字符串的值,创建对应的类的对象并返回。
       public static Person createPerson(String className){
               Person  person = null;
               //根据类名,给person 赋值不同的子类对象
               switch(className){
               case "Chinese":
                       person = new Chinese("炎黄子孙中国人");
                       break;
               case "America":
                       person = new America("美国佬");
                       break;
               case "Japanese":
                       person = new Japanese();
                       break;
               case "Indian":
                       person = new Indian("阿三");
                       break;
               case "Italian":
                       person = new Italian("意大利");
                       break;
               }
               return person;
       }
       
       
       
}

23 种设计模式中的很重要的一种。

作用:如果某一个类在一工程中只希望创建该类的唯一的一个对象。那么就可以使用单例设计模式,保证该类只被实例化一次。

单例设计模式:
SingleTon。

如何去设计一个单例类。

public class TestSingleTon {

       public static void main(String[] args) {
               MySingltTon mySingltTon = MySingltTon.getInstance();
               System.out.println(mySingltTon.getData());//0
               mySingltTon.setData(10);
               System.out.println(mySingltTon.getData());//10
               
               MySingltTon mySingltTon2 = MySingltTon.getInstance();
               System.out.println(mySingltTon2.getData());//10
       }

}

////需要只能被实例化一次的那个单例类。
//class MySingltTon{
//        //只执行一次的代码,在类加载的时候执行
//        //饿汉模式  可能会导致 启动延迟
//        private final static MySingltTon singltTon = new MySingltTon();
//        
//        //私有化构造方法
//        private MySingltTon() {
//        }
//        
//        //写一个创建本类对象的方法。
//        
//        //写一个得到唯一实例的方法
//        public static MySingltTon getInstance(){
//                return singltTon;
//        }
//        
//}

//懒汉模式
class MySingltTon{
       
       private int data;
       
       public int getData() {
               return data;
       }

       public void setData(int data) {
               this.data = data;
       }

       private static MySingltTon singltTon;
       
       private MySingltTon() {
       }
       
       //懒汉模式  第一使用该唯一实例 的时候进行对象的初始化
//        //写一个得到唯一实例的方法
       public static MySingltTon getInstance(){
               if(singltTon == null){
                       singltTon = new MySingltTon();
               }
               return singltTon;
       }
       
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!