Android设计原则

一    首先介绍接Android是针对接口编程的。接口是一系列方法的的声明。一个接口只有方法的特征,没有实现。这些方法可以在不同的地方被不同的类实现,这些实现可以具有不同的行为。可提高程序的可维护性,可伸缩性和可复用性。可通过接口定义类。

  1.  接口是对抽象的抽象
  2. 接口解释标准,就是承诺
  3. 针对接口编程,不要针对具体编程是依赖倒转原则的另一种表述。

    eg:定义接口A,定义类a1,a2实现接口A,可以通过A实例化对象a1和a2.

 A a1=new a1();

A a2=new a2();

二.设计原则

  1. 单一职责原则:就一个类而言,应该仅有一个引起他变化的原因。也就是一个类的功能要单一,只做与他相关的事。eg:MVC模式是软件开发的经典模式。视图将用户请求传给相应的控制器,由控制器决定调用哪个模型,然后由模型调用相应的业务逻辑对用户的请求进行加工处理,如果需要返回数据,模型会把相应的数据返回给控制器,由控制器调用相应的视图,最终由视图返回数据给用户。在这里视图负责用户的数据和请求以及展示,控制器负责数据的访问和用户请求的控制。模型负责数据部分的维护      
  2. 开放封闭原则:一个软件实体应该对扩展开放,对修改封闭。扩展开放,意味着有新的需求或变化时,可以对其代码进行扩展,以适应新的情况。对修改封闭,意味着类一旦设计完成,就可以对立完成其工作,而不要对类进行任何修改。如何做到开放封闭原则。答案是封装变化,依赖接口和抽象类,而不要依赖具体实现类,要针对接口和抽象类编程。因为接口和抽象类是稳定的,他们是一种对客户端的承诺,是相对不变的。如果以后需要扩展或者开发新的功能,只需要实现或者继承接口,抽象类,即可覆盖或者扩展新的功能。实现了对扩展开放,对修改封闭。
  3. 里氏代换原则(LSP):指一个软件实体如果使用的是基类,那么也一定适用于其子类,而且他根本察觉不出使用的是基类对象还是子类对象;反过来的代换是不成立的。LSP讲的是基类和子类的关系。只有这种关系存在时,里氏代换原则才成立
    public abstract class A {
    
     public abstract  a();
    }
    public class aa extends A{
    
    @override
    public a(){
      system.out.println("我是aa");
    }
    }

    public class aaa extends A{
    
    @override
    public a(){
      system.out.println("我是aaa");
    }       
    A aa=new aa();
    
    
    
    
    
  4. 迪米特法则:LoD,又称最少知识原则(LKP)指一个对象应该对其他对象尽可能最少的了解,狭义的迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用,关键就是找到一个中间类
  5. 合成聚合复用原则CARP:指在一个新的对象中使用原来已经存在的一些对象,使这些原来已将存在的对象成为新对象的一部分,新的对象通过向这些原来已经具有的对象委派相应的动作或者命令达到复用已有功能的目的,更简洁的表述:要尽量使用合成和聚合()对其他对象的引用,尽量不要使用继承。
  • 聚合是关联关系的一种,用来表示一种整体和部分的拥有关系,整体持有对部分的引用,可以调用部分的能够被访问的方法和属性等,当然这种访问往往是对接口和抽象类的访问,作为部分可以同时被多个新的对象引用,同时为多个新的对象提供服务,是对接口的引用
  • 合成也是关联关系的一种,但合成是一种比聚合强得多的一种关联关系。在合成关系里面,部分和整体的声明周期是一样的。作为整体的新对象完全拥有对作为部分的支配权。包括负责和支配部分的创建和销毁。一个合成关系中的成员对象是不能和另外一个合成关系共享的,是对类的引用。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值