6. 类的关系-低耦合与高内聚-单对象模型-工厂模式 小总结

 

 

 

 

1.类与类之间的关系

   (1).继承

   (2).关联:两个相对独立的对象,当一个对象的实例与另外一个对象的特定实例存在固定关系时,这两个对象之间就存在关联关系。

 

   (3).组合:对象A包含对象B,对象B离开对象A没有实际意义。是一种更强的关联关系。人包含手,手离开人的躯体就失去了它应有的作用。

 

   (4).聚合:当对象A被加入到对象B中,成为对象B的组成部分时,对象B和对象A之间为聚合关系。聚合是关联关系的一种,是较强的关联关系,强调的是整体与部分之间的关系。

 

2.低耦合与高内聚

      耦合:就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。

      内聚:是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

     

       低耦合与高内聚:就是类与类之间的调用关系要简洁明了,软件项目的每一个类要有其相对明确且独立的功能。

低耦合与高内聚是一个重要的java设计原则。

 

    

      在以后的Java设计中,要谨记创建接口的重要性.

 

3.单对象模型

      是指在一个程序的运行过程中,某一个类创建且只创建一个对象。

     实现:A类使用B类

 

              A类中调用B类时:B b=b.Get(“构造参数”);

   

              B类中:     public class B{

                                          B  b;

                                          //定义构造器为私有

                                           private B(“构造参数”){
                                                        

                                                           }

                                          //外部调用函数
                                          public static B Get(“构造参数”){

                                           if(b!=null){

                                              return b;

                                                     }

                                            else{

                                                     B b=new B(“构造参数”); 

                                                    return b;

                                                     }

                                       }

 

                             }

 

 

4.工厂模式(接口使用方法)

   (1). 简单工厂模式(Simple Factory)

   (2). 工厂方法模式(Factory Method)

   (3). 抽象工厂模式(Abstract Factory)

      这三种模式从上到下逐步抽象,并且更具一般性。即对于产品树上类似的种类(一般是树的叶子中互为兄弟的)使用简单工厂模式来实现。    

      工厂模式有三个参与者(角色),抽象产品(Product)、工厂(Creator)和具体产品(ConcreteProduct)。客户只会看到工厂和抽象产品。   看看抽象工厂模式的各个角色(和工厂方法的如出一辙)。抽象工厂角色:这是工厂方法模式的核心,它与应用程序无关。


     工厂模式的作用在于将创建具体产品的方法由工厂类控制,客户只需要知道产品的抽象类型。

代码理解:
public interface Product{
public String getProduct();
} //抽象产品

public class ConcreteProduct implements Product{
public String getProduct(){
return "产品1";
}
}

public class Creator{
public static Product create1(){
return new ConcreteProduct();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值