Option for implementing Robert Martin's net architecture



  • This architecture is required as simple as possible on the basis of Robert Martin ' s book: введите сюда описание изображения

    According to this architecture, Business Rules and Business Rules Interface should know nothing about Interface Realization.
    To date, the modules shown in the figure are as follows:
    User Interface challenges the function in Bussiness Rules:

    public void onClick(View v) {
        BusinessRules businessRules = new BusinessRules();
        switch (v.getId()) {
            case R.id.btnSelect:
                businessRules.business_rules(1, null,null);
                break;
            case R.id.btnInput:
                businessRules.business_rules(2,etName.getText().toString(), etUID.getText().toString());
                break;
        }
    }
    

    Bussiness Rules contain business logic (depending on the value of action, we either select() or input()):

    public class BusinessRules {
    
    public void business_rules(int action, String UserName, String UID) {
    
        switch (action) {
            case (1):
                select();
                break;
            case (2):
                input(UserName, UID);
                break;
        }
    }
    

    }

    Business Rules Interface contains an interface defining select(s) and input(s):

    public interface BusinessRulesInterface {

    void select();
    
    void input(String UserName, String UID);
    

    }

    Interface Realization contains a class that implements the interface function of Business Rules Interface:

    public class InterfaceRealization extends AppCompatActivity implements BusinessRulesInterface {

    @Override
    public void select() {
        Toast.makeText(this, "Нажата кнопка Select", Toast.LENGTH_LONG);
    }
    
    @Override
    public void input(String UserName, String UID) {
        Toast.makeText(this, "Input: " + UserName +" " + UID, Toast.LENGTH_LONG);
    }
    

    }

    Question: How do you put the business Rules on Business Rules Interface right?
    P.S. The same subject I raised. https://ru.stackoverflow.com/questions/1346581/%D0%92%D1%8B%D0%B7%D0%BE%D0%B2%20%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0%20%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%B0 but perhaps there I was unclear about the task, so I decided to create a separate issue for more complete discussion.



  • public class BusinessRules {
    
      private BusinessRulesInterface businessRules;
    
      @Inject // - possibly
      public BusinessRules(BusinessRulesInterface businessRules) {
        this.businessRules = businessRules;
      }
    

Log in to reply
 

Suggested Topics

  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2
  • 2