• 23中设计模式


    (一)设计模式的简介:

    1.什么是设计模式?
    2.设计模式有何作用?
    答:使系统有很好的扩展性;是面向对象中反复出现的问题的解决方案;也是针对特定环境下特定问题的解决方法和方式;为软件重构提供了目标;
    3.有哪几种设计模式?
    答:有23中;分为三大类,创建型模式、结构型模式、行为型模式
    其中创建型模式有5中:工厂模式、单利模式、抽象工厂模式、建造者模式、原型模式
    4.设计模式用于哪些方面?
    答:设计模式主要用于软件设计,作用:为软件开发人员提供平台;最佳的设计模式;
    5.设计模式的原则?
    6.了解demo的含义:电脑中的demo指展示电脑图片和音乐的一种程式;

    (二)工厂模式

    相关代码:

    定义一个接口:

    package zdbDesignPattern.factory;                                             
                                                                                  
    public interface Sharp {                                                      
        //定义一个形状接口,并有三个实现类                                                        
        //相应的网址:http://www.runoob.com/design-pattern/factory-pattern.html         
        public void draw();                                                       
    }                                                                             
                                                                                  

    定义三个实现类:

    package zdbDesignPattern.factory;           
                                                
    public class Circle implements Sharp {      
                                                
        @Override                               
        public void draw() {                    
                                                
            System.out.println("circle");       
        }                                       
                                                
    }                                           
            
    
    package zdbDesignPattern.factory;            
                                                 
    public class Rectangle implements Sharp {    
                                                 
        @Override                                
        public void draw() {                     
                                                 
            System.out.println("Rectangle");     
        }                                        
                                                 
    }                                            
    
    
    
    package zdbDesignPattern.factory;                       
                                                            
    public class Square implements Sharp {                  
                                                            
        @Override                                           
        public void draw() {                                
            System.out.println("square");                   
                                                            
        }                                                   
                                                            
    }                                                       
                                                            
    
                                        

    创建一个工厂

    package zdbDesignPattern.factory;                            
                                                                 
    public class SharpFactory {                                  
        //使用getSharp方法,可以获取形状类型的对象                               
        public Sharp getSharp(String sharp){                     
                                                                 
            if(sharp==null){                                     
                return null;                                     
            }else if(sharp.equals("SQUARE")){                    
                return new Square();                             
            }else if(sharp.equals("RECTANGLE")){                 
                return new Rectangle();                          
            }else if(sharp.equals("CIRCLE")){                    
                return new Circle();                             
            }                                                    
            return null;                                         
                                                                 
        }                                                        
    }                                                            

    使用该工厂,通过传递该类的信息获取该类的对象:

    package zdbDesignPattern.factory;                           
                                                                
    public class FactoryPatternDemo {                           
                                                                
        /**                                                     
         * @param args                                          
         */                                                     
        public static void main(String[] args){                 
            //创建工厂,利用工厂中的方法得到相应的对象                              
            SharpFactory sharpFactory = new SharpFactory();     
            //获取square对象,并调用他的方法                                
            Sharp sharp1 = sharpFactory.getSharp("SQUARE");     
            sharp1.draw();                                      
            //获取rectangle对象,并调用他的方法                             
            Sharp sharp2 = sharpFactory.getSharp("RECTANGLE");  
            sharp2.draw();                                      
            //获取circle对象,并调用他的方法                                
            Sharp sharp3 = sharpFactory.getSharp("CIRCLE");     
            sharp3.draw();                                      
                                                                
        }                                                       
                                                                
    }                                                           
                                                                

    (三)单例模式

    创建一个类:

    package zdbDesignPattern.singleton;                                  
                                                                         
    public class SingleObject {                                          
        //创建一个SingleObject对象                                             
        private static SingleObject instance = new SingleObject();       
        //将构造函数私有化,这样该类就不会被私有化                                           
        private SingleObject(){};                                        
        //获取唯一可用的对象                                                      
        public static SingleObject getInstace(){                         
            return instance;                                             
        }                                                                
                                                                         
        public void show(){                                              
                                                                         
            System.out.println("北京 我来了!");                               
        }                                                                
    }                                                                    

    从singleObject中获取唯一的对象

    package zdbDesignPattern.singleton;                        
                                                               
    public class SinglePatternDemo {                           
                                                               
        /**                                                    
         * 从SingleObject中获取唯一的对象                               
         */                                                    
        public static void main(String[] args) {               
            //获取唯一的对象,并调用其方法                                   
            SingleObject object = SingleObject.getInstace();   
            object.show();                                     
                                                               
        }                                                      
                                                               
    }                                                          
                                                               
  • 相关阅读:
    【转载】python基础-文件读写'r' 与 'rb' 和‘r+'与’rb+'区别
    python-IndexError: list index out of range
    NameError:name ‘xrange’ is not defined
    k8s 结合docker搭建私有仓库
    部署Kubernetes-dashboard
    通过Kubeadm搭建Kubernetes集群
    .net core +gogs + jenkins +docker自动化发布、部署
    .NET Core 使用ModelBinder去掉所有参数的空格
    mysql主从同步
    IdentityServer4同时使用多个GrantType进行授权和IdentityModel.Client部分源码解析
  • 原文地址:https://www.cnblogs.com/zdb292034/p/6104906.html
Copyright © 2020-2023  润新知